- Apr 07, 2009
-
-
Chris Lattner authored
llvm-svn: 68485
-
- Apr 06, 2009
-
-
Bob Wilson authored
Patch by Richard Pennington. llvm-svn: 68464
-
Torok Edwin authored
llvm-svn: 68459
-
Chris Lattner authored
llvm-svn: 68458
-
Torok Edwin authored
llvm-svn: 68457
-
Ed Schouten authored
instead of the place where it started to perform the string copy. - PR3661 - Patch by Benjamin Kramer! llvm-svn: 68443
-
Sanjiv Gupta authored
Map stack based frameindices for spills to zero based indices that can be accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc. llvm-svn: 68442
-
- Apr 04, 2009
-
-
Nick Lewycky authored
llvm-svn: 68421
-
Nick Lewycky authored
Constant, MDString and MDNode which can only be used by globals with a name that starts with "llvm." or as arguments to a function with the same naming restriction. llvm-svn: 68420
-
- Apr 03, 2009
-
-
Bob Wilson authored
llvm-svn: 68405
-
Bob Wilson authored
llvm-svn: 68404
-
Dan Gohman authored
loads when an input node has multiple uses. llvm-svn: 68398
-
Oscar Fuentes authored
llvm-svn: 68384
-
Anton Korobeynikov authored
llvm-svn: 68383
-
Anton Korobeynikov authored
llvm-svn: 68382
-
Anton Korobeynikov authored
llvm-svn: 68381
-
Anton Korobeynikov authored
llvm-svn: 68380
-
Mon P Wang authored
movq for v2i64 on x86-32. llvm-svn: 68368
-
Dan Gohman authored
Note that these are distinct from TargetInstrInfo::INSERT_SUBREG and TargetInstrInfo::EXTRACT_SUBREG, which are used. llvm-svn: 68355
-
Chris Lattner authored
llvm-svn: 68351
-
- Apr 02, 2009
-
-
Sanjiv Gupta authored
llvm-svn: 68333
-
Sanjiv Gupta authored
To convert the StopPoint insn into an assembler directive by ISel, we need to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize. llvm-svn: 68329
-
Sanjiv Gupta authored
Params are not being generated as static globals now. The caller passes them onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots. llvm-svn: 68327
-
Mikhail Glushenkov authored
llvm-svn: 68269
-
Owen Anderson authored
llvm-svn: 68262
-
Devang Patel authored
llvm-svn: 68254
-
Chris Lattner authored
llvm-svn: 68253
-
- Apr 01, 2009
-
-
Daniel Dunbar authored
- The code is silly, I'm just amusing myself. Rewrite to be efficient if you like. :) Also, if you wish to debate the proper names of the triple components I'm all ears. llvm-svn: 68252
-
Dan Gohman authored
is appropriate. This helps visually differentiate host-oriented calculations from target-oriented calculations. llvm-svn: 68227
-
Dan Gohman authored
less ambiguous and less C-specific. llvm-svn: 68219
-
Bob Wilson authored
assembly. llvm-svn: 68218
-
Dan Gohman authored
Applications/Burg/burg Applications/ClamAV/clamscan and many other tests. llvm-svn: 68211
-
Chris Lattner authored
llvm-svn: 68175
-
Chris Lattner authored
llvm-svn: 68173
-
Owen Anderson authored
llvm-svn: 68172
-
Misha Brukman authored
* Simplified if statement llvm-svn: 68163
-
Chris Lattner authored
it be an LLVM IR User object. llvm-svn: 68156
-
Chris Lattner authored
if it dangles. llvm-svn: 68150
-
Chris Lattner authored
which are effectively smart pointers to Value*'s. They are both very light weight and simple, and react to values being destroyed or being RAUW'd. WeakVN does a best effort to follow a value around, including through RAUW operations and will get nulled out of the value is destroyed. This is useful for the eventual "metadata that references a value" work, because it is a reference to a value that does not show up on its use_* list. AssertingVH is a pointer that compiles down to a dumb raw pointer when assertions are disabled. When enabled, it emits an assertion if the pointed-to value is destroyed while it is still being referenced. This is very useful for Maps and other things, and should have caught the recent bugs in CallGraph and Reassociate, for example. llvm-svn: 68149
-
- Mar 31, 2009
-
-
Evan Cheng authored
Throttle back "fold select into operand" transformation. InstCombine should not generate selects of two constants unless they are selects of 0 and 1. e.g. define i32 @t1(i32 %c, i32 %x) nounwind { %t1 = icmp eq i32 %c, 0 %t2 = lshr i32 %x, 18 %t3 = select i1 %t1, i32 %t2, i32 %x ret i32 %t3 } was turned into define i32 @t2(i32 %c, i32 %x) nounwind { %t1 = icmp eq i32 %c, 0 %t2 = select i1 %t1, i32 18, i32 0 %t3 = lshr i32 %x, %t2 ret i32 %t3 } For most targets, that means materializing two constants and then a select. e.g. On x86-64 movl %esi, %eax shrl $18, %eax testl %edi, %edi cmovne %esi, %eax ret => xorl %eax, %eax testl %edi, %edi movl $18, %ecx cmovne %eax, %ecx movl %esi, %eax shrl %cl, %eax ret Also, the optimizer and codegen can reason about shl / and / add, etc. by a constant. This optimization will hinder optimizations using ComputeMaskedBits. llvm-svn: 68142
-