ibm toronto lab © 2007 ibm corporation an idiom recognition framework for exploiting complex...
TRANSCRIPT
![Page 1: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/1.jpg)
IBM Toronto Lab
© 2007 IBM Corporation
An Idiom Recognition Framework for Exploiting Complex Hardware Instructions
Pramod Ramarao, Joran Siu, Motohiro Kawahito*
IBM Toronto Lab, *IBM Tokyo Research Lab
![Page 2: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/2.jpg)
IBM Toronto Lab
© 2007 IBM Corporation2
Notes about this talk
Implemented in the JIT compiler in IBM JDK for Java 6
Describes a patented methodology
![Page 3: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/3.jpg)
IBM Toronto Lab
© 2007 IBM Corporation3
Outline
Background
Our approach to idiom recognition
Experiments on the IBM System z platform
Summary
![Page 4: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/4.jpg)
IBM Toronto Lab
© 2007 IBM Corporation4
What is Idiom Recognition?
Idiom Recognition is a form of pattern matching done by optimizing compilers
Compilers can detect input code sequences in a program and replace them with complex hardware instructions
Performance of such sequences can be dramatically increased by using complex instructions
![Page 5: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/5.jpg)
IBM Toronto Lab
© 2007 IBM Corporation5
Complex hardware instructions
These are available today
– x86 processors have complex instructions (e.g. ‘repstos’) and have SSE, SSE4 (string and text processing)
– IBM System z processors have a coprocessor that supports character-translation
– POWER has vector instructions
Optimizing compilers can take advantage of these instructions to obtain good performance
![Page 6: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/6.jpg)
IBM Toronto Lab
© 2007 IBM Corporation6
Example: searching for a single delimiter
do { if (bytes[index] == 13) break; index++; } while(index < bytes.length);
T h i s i s a t e s t . 13
// Intermediate languageindex = SRST(bytes, index, 13) // SRST: SEARCH STRING
bytes:
index
![Page 7: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/7.jpg)
IBM Toronto Lab
© 2007 IBM Corporation7
Example: searching for a single delimiter
LA R2, 16(bytes, index) // startLA R3, 12(bytes) // lengthLHI R0, 13SRST R3, R2 LR index, R3
T h i s i s a t e s t . 13
bytes:
index
LA R3, 12(bytes) // lengthL001:LB R0, 16(bytes,index) // array loadCHI R0, 13 // checkBRC COND, Label L002AHI index, 1 // incrementCHI index, R3BRC COND, Label L001L002:
No hardware instruction Use hardware instruction
do { if (bytes[index] == 13) break; index++; } while(index < bytes.length);
![Page 8: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/8.jpg)
IBM Toronto Lab
© 2007 IBM Corporation8
SRST instruction performance on IBM System z 990
0
200
400
600
800
1,000
1,200
1,400
1,600
8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128
Number of characters processed by SRST
mil
lio
n c
har
acte
rs /
sec
w/ SRST
w/o SRST
x7
Larger numbers are better
![Page 9: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/9.jpg)
IBM Toronto Lab
© 2007 IBM Corporation9
Idiom Recognition
Compilers need to match the program source code to an idiom
do { if (bytes[index] op C) break; index++; } while(index < bytes.length)
Example: Idiom of delimiter search
index = SRST(bytes, index, C)
Single delimiter Multiple delimiters
index = TRT(bytes, index, Table)
op will match equality or inequality, such as “==“, “<=“, “!=“, …
C will match any constant.
![Page 10: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/10.jpg)
IBM Toronto Lab
© 2007 IBM Corporation10
We can use the SRST instruction for all of these examples
do { b = bytes[index]; if (b == 13) break; index++; } while(index < bytes.length);temp = b; // Used after the loop
b = bytes[index];do { if (b == 13) break; index++; b = bytes[index];} while(index < bytes.length);
do { if (bytes[index++] == 13) break; } while(index < bytes.length);
Program 1: (Separated code)
Program 2: (Additional code)
Program 3: (Different order)
![Page 11: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/11.jpg)
IBM Toronto Lab
© 2007 IBM Corporation11
We can use the SRST instruction for all of these examples
index = SRST(bytes, index, 13)
index = SRST(bytes, index, 13)b = bytes[index]temp = b // Used after the loop
index = SRST(bytes, index, 13)index++
do { b = bytes[index]; if (b == 13) break; index++; } while(index < bytes.length);temp = b; // Used after the loop
b = bytes[index];do { if (b == 13) break; index++; b = bytes[index];} while(index < bytes.length);
do { if (bytes[index++] == 13) break; } while(index < bytes.length);
Program 1: (Separated code)
Program 2: (Additional code)
Program 3: (Different order)
![Page 12: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/12.jpg)
IBM Toronto Lab
© 2007 IBM Corporation12
Exact pattern matching cannot optimize these examples.
do { if (bytes[index] == 13) break; index++; } while(index < bytes.length);
The case for exact matching:
do { b = bytes[index]; if (b == 13) break; index++; } while(index < bytes.length);temp = b; // Used after the loop
b = bytes[index];do { if (b == 13) break; index++; b = bytes[index];} while(index < bytes.length);
do { if (bytes[index++] == 13) break; } while(index < bytes.length);
Program 1: (Separated code)
Program 2: (Additional code)
Program 3: (Different order)
![Page 13: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/13.jpg)
IBM Toronto Lab
© 2007 IBM Corporation13
Outline
Background
Our approach to idiom recognition
Experiments on the IBM System z platform
Summary
![Page 14: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/14.jpg)
IBM Toronto Lab
© 2007 IBM Corporation14
Our approach to Idiom Recognition
Step 1: Find potential candidates by using a topological embedding algorithm
Step 2: Attempt to transform each candidate to exactly match the idiom by applying code transformations
– Partial peeling
– Forward code motion
– Copying store nodes
Computational order is O(|VP||ET| + |EP|)VP: Nodes of the idiom graphEP: Edges of the idiom graphET: Edges of the target graph
![Page 15: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/15.jpg)
IBM Toronto Lab
© 2007 IBM Corporation15
Topological Embedding (TE)
Uses ordered label directed graphs as a representation, where order of siblings is significant
In exact matching, directed graph P matches T f : P → T
f preserves label, degree and parent relationship
TE relaxes the restriction by requiring f to preserve the ancestor relationship
![Page 16: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/16.jpg)
IBM Toronto Lab
© 2007 IBM Corporation16
Idiom
a
b c
Exact Matching vs. Topological Embedding
Topological embedding matches if there is a path in the target graph corresponding to each edge in the idiom
ExactMatching
TopologicalEmbedding
Idiom
a
b c
a
b c
a
b c
ZY
Target Graph
an edge to an edge
an edge to a path
![Page 17: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/17.jpg)
IBM Toronto Lab
© 2007 IBM Corporation17
Our approach using TE
Build a directed graph from IL using opcodes as labels
To detect commutative operations, ignore order of siblings in the graph
Use wild-card nodes to allow matching of different opcodes in a target graph
• E.g., to detect multiple IF statements
Pattern match the target graph (from IL) using TE and apply graph transformations if needed
![Page 18: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/18.jpg)
IBM Toronto Lab
© 2007 IBM Corporation18
Direct Conversions
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 19: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/19.jpg)
IBM Toronto Lab
© 2007 IBM Corporation19
Direct Conversions (cont…)
Idiom
a
c
i
array load
check it with constants
increment the index Case 2: Multiple IFs
Case 1: Separated Node
a
c
i
a
a
c1
c2
i
![Page 20: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/20.jpg)
IBM Toronto Lab
© 2007 IBM Corporation20
Graph transformationsDifferent Order
i
a
c
a
i
c
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 21: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/21.jpg)
IBM Toronto Lab
© 2007 IBM Corporation21
Graph transformations – Partial peeling
Partialpeeling
Different Order
i
a
c
i
a
c
i
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 22: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/22.jpg)
IBM Toronto Lab
© 2007 IBM Corporation22
Graph transformations – Forward code motion
Forwardcode motion
Different Order
a
i
c
i
a
c
i
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 23: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/23.jpg)
IBM Toronto Lab
© 2007 IBM Corporation23
Graph transformations – Copy store nodesAdditional Node
a
S
c
i
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 24: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/24.jpg)
IBM Toronto Lab
© 2007 IBM Corporation24
Graph transformations – Copy store nodes
S
Copystore nodes
Additional Node
a
S
c
i
a
S
c
i
Idiom
a
c
i
array load
check it with constants
increment the index
![Page 25: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/25.jpg)
IBM Toronto Lab
© 2007 IBM Corporation25
Graph transformations - Example
Idiom
a
c
i
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
do { index++; b = bytes[index]; if (b == 13) break;} while(index < bytes.length);
temp = b; // Used
i
a
S
c
![Page 26: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/26.jpg)
IBM Toronto Lab
© 2007 IBM Corporation26
Graph transformations – Example (cont…)
Idiom
a
c
i
do { index++; b = bytes[index]; if (b == 13) break;} while(index < bytes.length);
temp = b; // Used
index++;
do { b = bytes[index]; if (b == 13) break; index++;} while(index < bytes.length);
temp = b; // Used
Partialpeeling
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
i
a
S
c
i
![Page 27: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/27.jpg)
IBM Toronto Lab
© 2007 IBM Corporation27
Idiom
a
c
i
Graph transformations – Example (cont…)
index++;do { b = bytes[index]; if (b == 13) break; index++;} while(index < bytes.length);
temp = b; // Used
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
i
a
S
c
i
![Page 28: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/28.jpg)
IBM Toronto Lab
© 2007 IBM Corporation28
Idiom
a
c
i
Graph transformations – Example (cont…)
Copy store nodes
index++;do { b = bytes[index]; if (b == 13) break; index++;} while(index < bytes.length);
temp = b; // Used
index++;
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
b = bytes[index];temp = b; // Used
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
i
a
S
c
iS
![Page 29: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/29.jpg)
IBM Toronto Lab
© 2007 IBM Corporation29
Transformation steps for example
Idiom
a
c
i
index++;
index = SRST(…)
b = bytes[index];temp = b; // Used
do { index++; b = bytes[index]; if (b == 13) break;} while(index < bytes.length);
temp = b; // Used
index++;
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
b = bytes[index];temp = b; // Used
do { if (bytes[index] == 13) break; index++;} while(index < bytes.length);
![Page 30: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/30.jpg)
IBM Toronto Lab
© 2007 IBM Corporation30
Outline
Background
Our approach for idiom recognition
Experiments on the IBM System z platform
Summary
![Page 31: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/31.jpg)
IBM Toronto Lab
© 2007 IBM Corporation31
Implemented idioms
Idiom Name Description
findbytes Search for delimiters
arraytranslate Conversion of character codes
memcpy Copy memory
memset Fill memory
memcmp Compare memory
![Page 32: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/32.jpg)
IBM Toronto Lab
© 2007 IBM Corporation32
Experiments on the IBM System z platform
Environment: System z990 2084-316, 64-bit, 8 GB RAM, Linux
Three algorithm variants:
– Baseline: No matching done
– Exact Match
– Our approach: our approach in addition to exact match
Benchmarks used
– Micro-benchmarks for J2SE class files
– IBM XML Parser
– Codepage Converter primitives
![Page 33: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/33.jpg)
IBM Toronto Lab
© 2007 IBM Corporation33
High-level Flow Diagram
Idiom Recognition
Find candidate loops
Transform to match the idiom
Faster Code
Loop Canonicalization &Loop Versioning
Canonicalize each loop
ExactMatching
TopologicalEmbedding
Graph Transformations
…optimizations…
…optimizations…
![Page 34: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/34.jpg)
IBM Toronto Lab
© 2007 IBM Corporation34
Performance improvements - Micro-Benchmarks
0%
50%
100%
150%
200%
250%
300%
350%
16 32 64 128 16 32 64 128
Number of characters processed by hardware instructions
Imp
rove
men
t
Our approach
Exact Match
java/lang/String.compareTo() java/io/BufferedReader.readLine()
Larger numbers are better(Baseline = “No match” normalized to 100%)
![Page 35: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/35.jpg)
IBM Toronto Lab
© 2007 IBM Corporation35
Performance improvements - IBM XML Parser
111%
240%
142%
0%
50%
100%
150%
200%
250%
300%
small=10Kb medium=9M large=13M
Size of input XML document
Imp
rove
men
t
Our approach
Exact Match
Larger numbers are better(Baseline = “No match” normalized to 100%)
![Page 36: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/36.jpg)
IBM Toronto Lab
© 2007 IBM Corporation36
Performance improvements - Codepage Converter primitives
0%
100%
200%
300%
400%
500%
600%
Codepage
Imp
rov
em
en
t
Our approach
Exact Match
Larger numbers are better(Baseline = “No match” normalized to 100%)
![Page 37: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/37.jpg)
IBM Toronto Lab
© 2007 IBM Corporation37
Compilation Time
Reduce compilation time
– Filters to exclude target candidates unlikely to be matched
– Applied at higher optimization levels on frequently executed methods
• Match selected idioms at lower optimization levels
Measured maximum compilation time overhead of 0.28%
![Page 38: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/38.jpg)
IBM Toronto Lab
© 2007 IBM Corporation38
Summary
New approach for idiom recognition
– Much more powerful than exact matching
Significant performance improvements
– Up to 240% on IBM XML parser
– Small compilation time overhead 0.28%
Future work:
– More idioms
– More graph transformations
– More architectures
![Page 39: IBM Toronto Lab © 2007 IBM Corporation An Idiom Recognition Framework for Exploiting Complex Hardware Instructions Pramod Ramarao, Joran Siu, Motohiro](https://reader034.vdocument.in/reader034/viewer/2022052702/56649c795503460f9492e453/html5/thumbnails/39.jpg)
IBM Toronto Lab
© 2007 IBM Corporation39
Thank you