summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Rearrange operands of the BranchInst, to be able toGabor Greif2009-03-126-51/+125
| | | | | | | | | | | | | | | | | | | | | | | | | access each with a fixed negative index from op_end(). This has two important implications: - getUser() will work faster, because there are less iterations for the waymarking algorithm to perform. This is important when running various analyses that want to determine callers of basic blocks. - getSuccessor() now runs faster, because the indirection via OperandList is not necessary: Uses corresponding to the successors are at fixed offset to "this". The price we pay is the slightly more complicated logic in the operator User::delete, as it has to pick up the information whether it has to free the memory of an original unconditional BranchInst or a BranchInst that was originally conditional, but has been shortened to unconditional. I was not able to come up with a nicer solution to this problem. (And rest assured, I tried *a lot*). Similar reorderings will follow for InvokeInst and CallInst. After that some optimizations to pred_iterator and CallSite will fall out naturally. llvm-svn: 66815
* Re-apply 66024 with fixes: 1. Fixed indirect call to immediate address ↵Evan Cheng2009-03-124-6/+16
| | | | | | assembly. 2. Fixed JIT encoding by making the address pc-relative. llvm-svn: 66803
* Another missing check for debug intrinsics.Dale Johannesen2009-03-121-1/+1
| | | | llvm-svn: 66800
* Fully initialize all ivars, fixing PR3790, patch by Edwin Torok!Chris Lattner2009-03-121-1/+1
| | | | llvm-svn: 66798
* Typo.Evan Cheng2009-03-121-1/+1
| | | | llvm-svn: 66797
* Fix test after Chris' select changes.Evan Cheng2009-03-121-3/+3
| | | | llvm-svn: 66795
* Adjust this test for recent sroa improvements.Duncan Sands2009-03-121-1/+1
| | | | llvm-svn: 66791
* add some text to explain sentinelsGabor Greif2009-03-121-0/+39
| | | | llvm-svn: 66790
* minor tweaksGabor Greif2009-03-121-11/+12
| | | | llvm-svn: 66788
* Reorganize some #include's.Owen Anderson2009-03-122-5/+4
| | | | llvm-svn: 66780
* Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))"Chris Lattner2009-03-126-105/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | related transformations out of target-specific dag combine into the ARM backend. These were added by Evan in r37685 with no testcases and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll). Add some simple X86-specific (for now) DAG combines that turn things like cond ? 8 : 0 -> (zext(cond) << 3). This happens frequently with the recently added cp constant select optimization, but is a very general xform. For example, we now compile the second example in const-select.ll to: _test: movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 seta %al movzbl %al, %eax movl 4(%esp), %ecx movsbl (%ecx,%eax,4), %eax ret instead of: _test: movl 4(%esp), %eax leal 4(%eax), %ecx movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 cmovbe %eax, %ecx movsbl (%ecx), %eax ret This passes multisource and dejagnu. llvm-svn: 66779
* improve comment.Chris Lattner2009-03-121-4/+4
| | | | llvm-svn: 66778
* Enable Chris' value propagation change. It make available known sign, zero, ↵Evan Cheng2009-03-121-3/+1
| | | | | | one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet. llvm-svn: 66777
* On x86, if the only use of a i64 load is a i64 store, generate a pair of ↵Evan Cheng2009-03-123-51/+83
| | | | | | double load and store instead. llvm-svn: 66776
* add no-unwind, remove duplicate run line.Chris Lattner2009-03-121-3/+2
| | | | llvm-svn: 66775
* add nounwindsChris Lattner2009-03-121-2/+2
| | | | llvm-svn: 66773
* Revert r66765 and r66766. These were causing build failures on Darwin.Bill Wendling2009-03-124-150/+39
| | | | llvm-svn: 66770
* Regenerate.Nick Lewycky2009-03-121-32/+121
| | | | llvm-svn: 66766
* Set ARCH to x86 on mixed 32/64-bit Linux systems.Nick Lewycky2009-03-123-7/+29
| | | | | | Remove the explicit if OS = Darwin test around the setting of -m32/-m64. llvm-svn: 66765
* Forgot to check-in this as part of 7761.Sanjiv Gupta2009-03-121-3/+2
| | | | llvm-svn: 66763
* Banksel optimization is now based on the section names of symbols, since the ↵Sanjiv Gupta2009-03-121-44/+52
| | | | | | symbols in one section will always be put into one bank. llvm-svn: 66761
* Allow for switch values bigger than 64 bits.Dale Johannesen2009-03-121-1/+1
| | | | llvm-svn: 66751
* Add StringMap::lookup.Daniel Dunbar2009-03-121-0/+21
| | | | llvm-svn: 66750
* Fix some nondeterministic behavior when forwardingDale Johannesen2009-03-121-3/+13
| | | | | | | | | from a switch table. Multiple table entries that branch to the same place were being sorted by the pointer value of the ConstantInt*; changed to sort by the actual value of the ConstantInt. llvm-svn: 66749
* Also pass -gcc-tool-args when building a shared object.Evan Cheng2009-03-121-2/+5
| | | | llvm-svn: 66746
* Revert r66024. The JIT encoding for CALLpcrel32 is wrong -- see PR3773, and theDan Gohman2009-03-114-18/+4
| | | | | | assembly text output uses an indirect call ("call *") instead of a direct call. llvm-svn: 66735
* updateGabor Greif2009-03-111-0/+1
| | | | llvm-svn: 66733
* optimize i8 and i16 tls values.Rafael Espindola2009-03-113-0/+38
| | | | llvm-svn: 66725
* Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. ↵Owen Anderson2009-03-116-1886/+1971
| | | | | | No (intended) functionality change. llvm-svn: 66720
* Add a -no-implicit-float flag. This acts like -soft-float, but may generateBill Wendling2009-03-113-76/+79
| | | | | | floating point instructions that are explicitly specified by the user. llvm-svn: 66719
* Skip interleaved debug info when fast-forwarding throughDale Johannesen2009-03-111-2/+2
| | | | | | | | allocations. Apparently the assumption is there is an instruction (terminator?) following the allocation so I am allowing the same assumption. llvm-svn: 66716
* My last coalescer fix introduced a subtler one. It's aborting a commuting ↵Evan Cheng2009-03-112-5/+96
| | | | | | optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b. llvm-svn: 66715
* Debug intriniscs should be skipped when lookingDale Johannesen2009-03-111-1/+1
| | | | | | for a dependency, not terminate the search. llvm-svn: 66709
* Another bug :(Anton Korobeynikov2009-03-111-1/+1
| | | | llvm-svn: 66708
* Make Print callable from a pass's print method: add const qualifier. NoTorok Edwin2009-03-112-2/+2
| | | | | | functionality change. llvm-svn: 66700
* I should definitely read make docs someday :(Anton Korobeynikov2009-03-111-2/+3
| | | | llvm-svn: 66699
* do not pretend llvm/.../*.h being system headersGabor Greif2009-03-112-13/+13
| | | | llvm-svn: 66697
* Unbreak the build. Dunno, why it did not fail on mingw :(Anton Korobeynikov2009-03-112-2/+2
| | | | llvm-svn: 66692
* It makes no sense to have a ODR version of commonDuncan Sands2009-03-1122-61/+29
| | | | | | linkage, so remove it. llvm-svn: 66690
* fix validator errorsGabor Greif2009-03-112-2/+2
| | | | llvm-svn: 66688
* Fix exaples using IRBuilder. Thanks, Quadrescence and Glip7 from IRC!Gabor Greif2009-03-117-12/+12
| | | | llvm-svn: 66687
* Disable plugins / shared stuff generation on windows targets.Anton Korobeynikov2009-03-112-0/+10
| | | | | | | This fixes fallout from recent PIC/delibtoolize changes and unbreaks build on cygming. llvm-svn: 66686
* For yonah, fix a vector shuffle case for v16i8 where we didn't properly ↵Mon P Wang2009-03-112-2/+33
| | | | | | clear some bits. llvm-svn: 66684
* implement support for C-style string literal concatenation in td files.Chris Lattner2009-03-112-2/+17
| | | | llvm-svn: 66663
* fix PR3785, a valgrind error on test/CodeGen/ARM/pr3502.llChris Lattner2009-03-111-1/+5
| | | | llvm-svn: 66660
* Add parentheses to pacify gcc-4.3.Duncan Sands2009-03-111-1/+1
| | | | llvm-svn: 66653
* Remove the one-definition-rule version of extern_weakDuncan Sands2009-03-1113-52/+25
| | | | | | | linkage: this linkage type only applies to declarations, but ODR is only relevant to globals with definitions. llvm-svn: 66650
* Allow cross-process JIT to handle MachineRelocations of the ExternalSymbolNate Begeman2009-03-111-13/+82
| | | | | | | variety. For example, an i64 div might turn into a call to __divdi3 during legalization. llvm-svn: 66646
* Fixed a v8i16 shuffle case that should generate a pshufb instead of a ↵Mon P Wang2009-03-112-1/+13
| | | | | | pshuflw/hw. llvm-svn: 66645
* formatting change, reduce indentation. No functionality change.Chris Lattner2009-03-111-82/+80
| | | | llvm-svn: 66642
OpenPOWER on IntegriCloud