%PDF-1.4
%ÐÔÅØ
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
4 0 obj
<< /S /GoTo /D (Abstract.1) >>
endobj
7 0 obj
(Abstract)
endobj
8 0 obj
<< /S /GoTo /D (acknowledgments.1) >>
endobj
11 0 obj
(Acknowledgments)
endobj
12 0 obj
<< /S /GoTo /D (tableofcontents.1) >>
endobj
15 0 obj
(Contents)
endobj
16 0 obj
<< /S /GoTo /D (chapter.1) >>
endobj
19 0 obj
(1 Introduction)
endobj
20 0 obj
<< /S /GoTo /D (part.1) >>
endobj
23 0 obj
(Background)
endobj
24 0 obj
<< /S /GoTo /D (chapter.2) >>
endobj
27 0 obj
(2 LLVM)
endobj
28 0 obj
<< /S /GoTo /D (section.2.1) >>
endobj
31 0 obj
(2.1 Architecture)
endobj
32 0 obj
<< /S /GoTo /D (section.2.2) >>
endobj
35 0 obj
(2.2 Intermediate Representation \(LLVM-IR\))
endobj
36 0 obj
<< /S /GoTo /D (subsection.2.2.1) >>
endobj
39 0 obj
(2.2.1 Types)
endobj
40 0 obj
<< /S /GoTo /D (subsection.2.2.2) >>
endobj
43 0 obj
(2.2.2 Instructions)
endobj
44 0 obj
<< /S /GoTo /D (section.2.3) >>
endobj
47 0 obj
(2.3 Analysis Passes)
endobj
48 0 obj
<< /S /GoTo /D (subsection.2.3.1) >>
endobj
51 0 obj
(2.3.1 Dominator Tree)
endobj
52 0 obj
<< /S /GoTo /D (subsection.2.3.2) >>
endobj
55 0 obj
(2.3.2 Loop Information)
endobj
56 0 obj
<< /S /GoTo /D (subsection.2.3.3) >>
endobj
59 0 obj
(2.3.3 Region Information)
endobj
60 0 obj
<< /S /GoTo /D (subsection.2.3.4) >>
endobj
63 0 obj
(2.3.4 Scalar Evolution)
endobj
64 0 obj
<< /S /GoTo /D (subsection.2.3.5) >>
endobj
67 0 obj
(2.3.5 Alias Analysis)
endobj
68 0 obj
<< /S /GoTo /D (section.2.4) >>
endobj
71 0 obj
(2.4 Canonicalization)
endobj
72 0 obj
<< /S /GoTo /D (subsection.2.4.1) >>
endobj
75 0 obj
(2.4.1 Loop Canonicalization)
endobj
76 0 obj
<< /S /GoTo /D (chapter.3) >>
endobj
79 0 obj
(3 Integer Polyhedra)
endobj
80 0 obj
<< /S /GoTo /D (section.3.1) >>
endobj
83 0 obj
(3.1 Integer Set)
endobj
84 0 obj
<< /S /GoTo /D (section.3.2) >>
endobj
87 0 obj
(3.2 Integer Map)
endobj
88 0 obj
<< /S /GoTo /D (section.3.3) >>
endobj
91 0 obj
(3.3 Properties and Operations on Sets and Maps)
endobj
92 0 obj
<< /S /GoTo /D (part.2) >>
endobj
95 0 obj
(Polly)
endobj
96 0 obj
<< /S /GoTo /D (chapter.4) >>
endobj
99 0 obj
(4 Architecture)
endobj
100 0 obj
<< /S /GoTo /D (section.4.1) >>
endobj
103 0 obj
(4.1 How to Use Polly)
endobj
104 0 obj
<< /S /GoTo /D (subsection.4.1.1) >>
endobj
107 0 obj
(4.1.1 Polly's LLVM-IR Passes)
endobj
108 0 obj
<< /S /GoTo /D (subsection.4.1.2) >>
endobj
111 0 obj
(4.1.2 pollycc - A Convenient Polyhedral Compiler)
endobj
112 0 obj
<< /S /GoTo /D (chapter.5) >>
endobj
115 0 obj
(5 LLVM-IR to Polyhedral Description)
endobj
116 0 obj
<< /S /GoTo /D (section.5.1) >>
endobj
119 0 obj
(5.1 What can be Translated?)
endobj
120 0 obj
<< /S /GoTo /D (section.5.2) >>
endobj
123 0 obj
(5.2 How is a SCoP Defined on LLVM-IR?)
endobj
124 0 obj
<< /S /GoTo /D (section.5.3) >>
endobj
127 0 obj
(5.3 The Polyhedral Representation of a SCoP)
endobj
128 0 obj
<< /S /GoTo /D (section.5.4) >>
endobj
131 0 obj
(5.4 How to Create the Polyhedral Representation from LLVM-IR)
endobj
132 0 obj
<< /S /GoTo /D (section.5.5) >>
endobj
135 0 obj
(5.5 How to Detect Maximal SCoPs)
endobj
136 0 obj
<< /S /GoTo /D (section.5.6) >>
endobj
139 0 obj
(5.6 Preparing Transformations)
endobj
140 0 obj
<< /S /GoTo /D (subsection.5.6.1) >>
endobj
143 0 obj
(5.6.1 LLVM canonicalization passes)
endobj
144 0 obj
<< /S /GoTo /D (subsection.5.6.2) >>
endobj
147 0 obj
(5.6.2 Create Independent Basic Blocks)
endobj
148 0 obj
<< /S /GoTo /D (chapter.6) >>
endobj
151 0 obj
(6 Polyhedral Optimizations)
endobj
152 0 obj
<< /S /GoTo /D (section.6.1) >>
endobj
155 0 obj
(6.1 Transformations on the Polyhedral Representation)
endobj
156 0 obj
<< /S /GoTo /D (section.6.2) >>
endobj
159 0 obj
(6.2 External Optimizers - JSCoP)
endobj
160 0 obj
<< /S /GoTo /D (section.6.3) >>
endobj
163 0 obj
(6.3 Dependency Analysis)
endobj
164 0 obj
<< /S /GoTo /D (chapter.7) >>
endobj
167 0 obj
(7 Polyhedral Description to LLVM-IR)
endobj
168 0 obj
<< /S /GoTo /D (section.7.1) >>
endobj
171 0 obj
(7.1 Generation of a Generic AST)
endobj
172 0 obj
<< /S /GoTo /D (section.7.2) >>
endobj
175 0 obj
(7.2 Analyses on the Generic AST)
endobj
176 0 obj
<< /S /GoTo /D (subsection.7.2.1) >>
endobj
179 0 obj
(7.2.1 Detection of Parallel Loops)
endobj
180 0 obj
<< /S /GoTo /D (subsection.7.2.2) >>
endobj
183 0 obj
(7.2.2 The Stride of a Memory Access Relation)
endobj
184 0 obj
<< /S /GoTo /D (section.7.3) >>
endobj
187 0 obj
(7.3 Generation of LLVM-IR)
endobj
188 0 obj
<< /S /GoTo /D (subsection.7.3.1) >>
endobj
191 0 obj
(7.3.1 Sequential Code Generation)
endobj
192 0 obj
<< /S /GoTo /D (subsection.7.3.2) >>
endobj
195 0 obj
(7.3.2 OpenMP Code Generation)
endobj
196 0 obj
<< /S /GoTo /D (subsection.7.3.3) >>
endobj
199 0 obj
(7.3.3 Vector Code Generation)
endobj
200 0 obj
<< /S /GoTo /D (chapter.8) >>
endobj
203 0 obj
(8 Experiments)
endobj
204 0 obj
<< /S /GoTo /D (section.8.1) >>
endobj
207 0 obj
(8.1 Matrix Multiplication - Vectorized)
endobj
208 0 obj
<< /S /GoTo /D (section.8.2) >>
endobj
211 0 obj
(8.2 Automatic Optimization of the PolyBench benchmarks)
endobj
212 0 obj
<< /S /GoTo /D (subsection.8.2.1) >>
endobj
215 0 obj
(8.2.1 The Identity Transformation)
endobj
216 0 obj
<< /S /GoTo /D (subsection.8.2.2) >>
endobj
219 0 obj
(8.2.2 Creating Optimized Sequential Code with Pluto)
endobj
220 0 obj
<< /S /GoTo /D (subsection.8.2.3) >>
endobj
223 0 obj
(8.2.3 Creating Optimized Parallel Code with Pluto)
endobj
224 0 obj
<< /S /GoTo /D (chapter.9) >>
endobj
227 0 obj
(9 Conclusion)
endobj
228 0 obj
<< /S /GoTo /D (part.3) >>
endobj
231 0 obj
(Appendix)
endobj
232 0 obj
<< /S /GoTo /D (dummy.2) >>
endobj
235 0 obj
(List of Figures)
endobj
236 0 obj
<< /S /GoTo /D (dummy.3) >>
endobj
239 0 obj
(List of Listings)
endobj
240 0 obj
<< /S /GoTo /D (dummy.4) >>
endobj
243 0 obj
(List of Acronyms)
endobj
244 0 obj
<< /S /GoTo /D (dummy.5) >>
endobj
247 0 obj
(References)
endobj
248 0 obj
<< /S /GoTo /D (declaration.0) >>
endobj
251 0 obj
(Declaration)
endobj
252 0 obj
<< /S /GoTo /D [253 0 R /FitV ] >>
endobj
257 0 obj <<
/Length 589
/Filter /FlateDecode
>>
stream
xÚ•TQoÓ0~ϯð£#Ïvl'æm££:VX@ÆCÖ¦E“”$¿ž‹í´M÷„"Ýùìûî»;ŸCÑQ4
èkJÒ„JAÄýB/¶>7Ypõ–ÄÑRr”‹S'
)¡‰V°µB?ðm1EñG§®ºqjîÔlä2
#¡S¼pÖýÑS¥ø›3Þ9å#Oœú<"˜÷A’íce#º»‘õýOÕ…ãý(½—Þ)çžg~žå×!þÏìý±©Ð+5êU„òE\å:Õ7ŵ•OV+s+Û0ŠµÀKkllÎœZ+»°ª‡I¼ Š{†öLþ¾¼ÓX“”r1* UÚe:1û]]×gÛ¢5m/A¨ÔPL
gM¨q½iò²4ÕÆa¦vï°w(Åa¸b‹VBzŠbŸ7]YTCÔk§gÕº†2X‚˼3ËÖíæÕÊ-îòn[ø“>¶ŠûJÆ¡¿Tæ9Mkº?ãð‹¼móƒKKj¢d‚"˜j)ý=öEOŸâgÓÖÍk²å¬‰³ÞlÓv&¯œ9/ªM~ T"ð+ï¿%âHà]‰tœL—¸XÖCQMf¾*NtP c{ÂIýwXY2ô¢éL54ÜO;K 7*6¾£,ÔºcA£8׾ߧXPíc¬Ôc';¸ÓÂN Ñ)÷ýë¿Þ7fççj4ÿ1ƒ‚<
ëÆ)cö¹Üfëÿ6ˆ!.(ÑО(¢5GË2øP"d"Sër¾¶‡Òo\ÍJ†&uð ¾ËÜ?âc,X
endstream
endobj
256 0 obj <<
/Type /Page
/Contents 257 0 R
/Resources 255 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 262 0 R
>> endobj
254 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (./images/uni-passau.pdf)
/PTEX.PageNumber 1
/PTEX.InfoDict 263 0 R
/BBox [0 0 371.69 97.83]
/Resources <<
/ProcSet [ /PDF ]
/ExtGState <<
/R8 264 0 R
>>>>
/Length 2708
/Filter /FlateDecode
>>
stream
xœmYI®c¹ÜëoíM&“Ó1Ú@puÖ7ÐöýG$GIµ¨Ï‡"òýuy.ÏãÿçÏãïÿ¨×Ÿÿ{üõà8–]mW+õúï¿®^ÿyxç«÷¥ÚçSkdü¥„ëßJs¥\1D'-^?½ºº‘®Æ…„œškzIƒìqŽÜøz>"ê’ẄÅUŒ}rgˆË‚qtÍg®HÍ»
Ib§$@À”‚ÉU’ÞÖO$äV]»$4—u!§X6ŽA!öÉš†+F¬6=|s±¬1¥‚æòZH)NjêH·à7²-øëJª´a¨P
.€K‰”]Bqž§—š]ƒMRtû`&üéð_JfÕêƒy!8©B)Çáf{Ϫ ‹¬SŸ_r¼nßÀàÚ°-AVÔäôT²ˆ§OD«©`"§É\X‰èRÀ€sQƒ¨ù
©ðX|ØüCš;ä×ßâkq%ÁìÅHö&Ši°RΤŸ‡G®¨
óp,BšÎ1ÌÓªÐ`
x±=I¨1ÎjÉD“œjAQÁüæ<™ßš::´bø CrçìÔ›L !¼Ÿžk¨â|³é}Œõ¶Ex(%nØ=$®eÚJODZ‚wq˜(È$¸Šàₘ‡ûAª€…t Žj ‰~á–ð"+-ö#뚈˜Ùöï
,” $d¢9\T›?€¥rÁÑ4dŽCÇ \¢½¯`(@[E\Ã,SÉ™pÖøpKG"2†Fs"¿.nÀó‰gÌ1Ï@¨´xÌH…ZE_áùÚ¥A…R¦d+ÞùöºA~=„Bi=Y)p ìd%¹ƒ ]¬”›• ØÓžAzŒs4¬áV!ƒ•pdX¤”Pòr²R@Ð6+iêtøhŽ/'0‰É½¡Ì"&9ŽØÌ&éMUˆ„d®‹™9Ó*›™¢'731§9m‹™¶¥–Å<øÐ¥r0S°'|¶~Gƒ3Çx3sKkˆº™‰ –¢73aoãê`æPrsÇ0i‰å‘)s‘Ž•«ÉIK‰‰vÝ3À)lZJ¦,'-?÷ºA@ˈŒ[íz$±YÏÚ!êíäY[D!ÛQ}p‘v”#Ñù _Ñc?Ö™|Ô¢O^7Èož†„£I„ŸÃYŒ„?Æô†€ñL³«ô€…V8‘Æ?ÏU Éðmc•MÈ.4ŸâÜ!,F ô>þ,ÄPí°ØÙ-5‹ˆÉÖœ-1o6éJŽß<ŸY´/ŸcÔ¼Ô™0CÔƒËß J·‹¾ ì€âMQ¢‹ÚjŽqH 䘑z¦
’!lÚãíöR|ëA•0@PåÊ^RÙ”$¡ë™íYG4£Û-tv†tõRd•ÀšÃVÖï1"AÛžQ˜:#vÀDö.cœ˜—Ÿ¸¢#S¶#ˆÆ¬7HªQD‘b³Zf“/EŠ’¶dcl-qfh¯©˜íÎÊÌJcœFV犎r|ØìA2ðtº–EÅ
¬A{ÖD´ Š;UX•Áû ê"öåJÈ^Æhi‘BH‘Ìf¤2î]¥•S8Ù5‡Þ-B.Ô†o$Úiˆ0…žZ2„uF\1E¢Eƒa7æÚÊ~¥)ì]ŸKÿ}ΧEº•.R<Ä
…zqXi çN}Õ7ò¶· ¦!5ÏYLr°]ìßS2+ŠzFžNÍN‹ >aF+N{S1ÚâË‚h6û±Ì{Dd¬
œ{¬€¡ÖvhfMÐq ËâJ)”N…%YV=ÔûPå‰ɛ1©¦žÄœÈ±SÂ}OÒ‚´FÓHQ!En„î¿ôEˆ5É7 â§Ú0Ö|!¼rf }U×á9]›8 ýáÚŒ¢O¢O$‘ÄÉ ž àvš"‚<€ËŒ‚ÿ±«ÂË v2ô®LΉé°1'»ð$:¥fŽéqµvc¨l°
#w©3¥Úñ;•;œö¡®•ð¡Þ4M€¼ŒÓe†g^ŽŽ¬•¤ºÇl'´×ÃŽ€šhÜ©Òr-•ÕÂÛA²nmŽŸÛÌy}IÖkw/”`6[C܆.¬2S¡ù¢Ú^¦!¾€€cR‘Õqžck Û3Ð$”e×1Š¼R˜dHØ¿Fv `_«Sæ‹Â¡JEÖ5_ã*Ï{4º€$ÈÀpÑk£*|ËXTEC‹=ÝQ©óŒ˜^æØt(VpÖŒhéEú²‡¯°Šòþf,Rš=(3p¶"Qy*R+—ò&Â=Uqªõ³» CNeS¿f ü\µ-=ÚÇ9¬¼nØÕ¥[qÄCEU¤ÐlCk³»Sb[T»ZÙ^ôofì®&ëEieï„ù"QñÜ«Ã Üo7º9¦P¨19ìMì›éGvë‘i8SÆÚç¿Sîuƒüz ½-vÒD'øÜ°ão";þæªoäLS10Œê‘¦&²cå†Áx‡ç#-¹Cöª¬«þF?ä¹C 5k"Ã`ô@š?Èši¸/£ƒD®ÃLK½VFØT/1 ’•´àE§†Îu® ãÞ÷6f®Ýu}ÊðºA~C=×|úŽ¶Ëoòe²½Èt —Å~mÃù‘M'Rü9?ÃíÍÕŠ-Ù ?¹C ®’¡õâÂÛývˆL§±a¦’pEN[c”À~5X’o,¶Ç¸ðö»ÎãgWE`Ï@9RÛ€Il:€¨òÂÆò%â»Ï/µºgд7U£×>¼†È¡êoA&2Uåv—ŠÌ3¶ª1×þv1g ×£ÿ_ºÎñqÆ@¦¶s‡%å»Ï/ͬºÅ¥w+Ðr„ãø’pƒlÖàÆ5Ôd¯²+L¾A†~Ès‡üzdÔ†'U¡Ð˜ŒR½}ðð-2}¥Åªß®›•£àÑwÄvƒT>?U»©i/s°5¨B »gFTj~Èàå[Ê4Þ{û>_; ò=¼‘Ä»p&Ò»çzƒTŒäyzñhò‘'ÌÑÂD;&´¸’)χyn€_üDÄ—àËó³ µFày‹ÖÞxJ(à¬Ø5êÍ;ûKkLÊêQµÕ:Æùðw1ËvÑg’¥}[-|y~ó±'†À'ôuòóÂåæ{òÆóóPÚ‚Ü@ Vè/sêÅ*';’Æ;ãð9,,¼ûiV{Þá-¹'²•.¼Z#ÄL¶ÞPX¬Óüãù%¥åc
ŸY|@½~ü^øœÈëQÅ^Ê£Hw +»#¸Ï®Ãw;½8[“ÀGQ^²Ueø½„f¤"K¶Š ÉÇcÄÉõ)ÆóK0
[[COn_”ÜݤlåËäTðÊu¼C²§|þÆÌþ Çç>CÏ6«šó`óY©ÐC)ÐÆ0¤·Ö‹]*ø"ÈÐú”âù%W§iDáåã¤~F„»QÖP§q{jHI–mèy¥Ÿcº†bŠ4ÃvñõHŒZ4 ¸Äò‰+BãÈË‹<Ÿ'ùüÛž, ·· ¯·¿)ÚŸ?ðïÿ\Uºö
endstream
endobj
263 0 obj
<<
/Producer (GPL Ghostscript 8.71)
/CreationDate (D:20101028135353-04'00')
/ModDate (D:20101028135353-04'00')
>>
endobj
264 0 obj
<<
/Type /ExtGState
/OPM 1
>>
endobj
258 0 obj <<
/D [256 0 R /XYZ 84.039 803.205 null]
>> endobj
259 0 obj <<
/D [256 0 R /XYZ 85.039 765.991 null]
>> endobj
255 0 obj <<
/ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R
/Font << /F24 260 0 R /F26 261 0 R >>
/XObject << /Im1 254 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
267 0 obj <<
/Length 233
/Filter /FlateDecode
>>
stream
xÚU=oÂ0†÷üŠ‰Æ1m©¢›Õ¥í`DJN
vgi}*ÓéÕé}žÓ18 ƒMÁ®óÉóµPÀµÌrpßÐ(j®e·‡âJ+HÜ¡Oe%$Ï݈iBrÜŒ¥%1¥v\”_îu¾–ò?‘C›Úž„Ø*ø]ápêêš±ÿéÚýèûœã0áý„1œmÚyµÝ–F‘÷·Y–<ž-˜¡ÜÖ7É}<ú|ŸëÚ„i–çÐü€JJM¹PqE…¨sq9ŒØ_õƒ ¡¹óãÊý“·¹rÅç@XÊ
endstream
endobj
266 0 obj <<
/Type /Page
/Contents 267 0 R
/Resources 265 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 262 0 R
>> endobj
268 0 obj <<
/D [266 0 R /XYZ 84.039 803.205 null]
>> endobj
265 0 obj <<
/ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R
/Font << /F24 260 0 R /F33 269 0 R /F26 261 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
271 0 obj <<
/Length 1691
/Filter /FlateDecode
>>
stream
xÚ¥XÉ’Û6½ÏWðHUY4·!Å£·IÙeW’Tâø€!! 1 Ò\f<ùúôŠšÐ•C.ÐÝغ_¿zG/ô~¸
¥ýzAz‘·»Â¤ðò4²0óÊæêÓçЫ@÷΃¤ØydÙxi|DEýÚ»½úùêåþêùMœzQayû.VD±—Gy¥©·¯¼Oþ‹Í6ÊBÿ%7·Üì¹ùȘ¼rºÏûwWoö+‡£ /®ÿÿ!q±,Ï‚,‰ø·Ó0*cuµÙ&aæûMá·›8÷ÆŠ®}cYu2G‘tº?´=œ9÷eKÍú²mºi4öÈFÊVÜOb 6Iæßo’ØW¦Vw¦6ã#›´±¨X
kÊä¦Ý¢SàVÛ(
â8ãSÃdX4οқ(öïM©[ö›k_«,bÞ5Ó Ü[>±MkÙÔØQÛÁÜoÒØ[Õuµ)ÉfX´ß1øˆú`>Ñv<<¨aä¥ô7]N—gÏùì¼]gâ"ðu ‹ë¯“¶cýȪšcÀêNxªžõÓ ŽšµM[i†,{Rý&Jýê|)§£uæàÞ›
ý…ÖÍTf[³i‹š¥*Ozx¶všÓa’ÝH{€)Sÿöí‡×¬0vû©$ß±Qƒ6‹Ý,k*]¡›)î0d]9º ª,u{šPÔŒgð¬"fd…©€-\´ƒˆ Å“ªÉ÷02xØŽd›hçÿ†q f¥À—éìе(»vÌ]-«Q+§ìG5+98›¤ð7QùïyF“?Ô,^uÿ“4É
ÔåÉ@Ð ã“Â#e»Ët@U¥FµÛRIúˆïNõà]›¡áÙ†X€V”ù']wÜ#G‚Q×Ö«H?é
ÖÛlStÂ`A9,¤H‚LÔ~±q˪±eñ汦@ sn¦â`lõ·®n
Sš¯& |