summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* regenerateChris Lattner2007-09-173-2348/+1511
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42036 91177308-0d34-0410-b5e6-96231b3b80d8
* Instcombine x-((x/y)*y) into a remainder operator.Dan Gohman2007-09-173-1/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42035 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding myself to credits.Gordon Henriksen2007-09-171-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42032 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 64-bit jmp instructions to the list of instructions thatDan Gohman2007-09-171-0/+2
| | | | | | | can terminate a block with no fall-through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42029 91177308-0d34-0410-b5e6-96231b3b80d8
* Use xorl instead of xorq to enter a zero into a 64-bit register.Dan Gohman2007-09-171-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42027 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit integer x<1 as x<=0, as comparisons with zero (now includeingDan Gohman2007-09-172-0/+12
| | | | | | | 64-bit) can use test instead of cmp with an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42026 91177308-0d34-0410-b5e6-96231b3b80d8
* Use "test reg,reg" in place of "cmp reg,0" for 64-bit operands. This wasDan Gohman2007-09-172-0/+13
| | | | | | | previously only done for 32-bit and smaller operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42024 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor the trampoline transformation into a subroutine.Duncan Sands2007-09-171-137/+148
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42021 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement x86 long double (uses host long double,Dale Johannesen2007-09-171-5/+30
| | | | | | | | so only works on x86 target). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42019 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in andersen's related to test_and_set.Daniel Berlin2007-09-162-8/+29
| | | | | | | | Add operator == and != to SparseBitVector. Simplify code for test_and_set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42018 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a few bugs related to zero'ing of elementsDaniel Berlin2007-09-161-45/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42017 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite of andersen's to be about 100x faster, cleaner, and begin to support ↵Daniel Berlin2007-09-161-324/+687
| | | | | | field sensitivity git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42016 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow-up to patch r41999. Make the conditional that emits the personality stubBill Wendling2007-09-161-1/+1
| | | | | | | | | match the conditional that turns on exception handling emittion in the asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42008 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust per revew comments.Dale Johannesen2007-09-161-16/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42002 91177308-0d34-0410-b5e6-96231b3b80d8
* Only emit the personality function as a global value if the backend actuallyBill Wendling2007-09-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | supports it. This solves this error on the Darwin x86-64 platform: $ cat testcase.ii struct A { A(); }; A *bork() { return new A; } $ llvm-g++ -arch x86_64 -c testcase.ii /var/tmp//cc3U8fd8.s:52:unknown section type: non_lazy_symbol_pointers /var/tmp//cc3U8fd8.s:52:Rest of line ignored. 1st junk character valued 76 (L). /var/tmp//cc3U8fd8.s:53:Unknown pseudo-op: .indirect_symbol /var/tmp//cc3U8fd8.s:53:Rest of line ignored. 1st junk character valued 95 (_). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41999 91177308-0d34-0410-b5e6-96231b3b80d8
* Be more careful when constant-folding PHI nodes.Owen Anderson2007-09-161-1/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41998 91177308-0d34-0410-b5e6-96231b3b80d8
* remove obsolete tests.Chris Lattner2007-09-153-17/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41984 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1666, SPASS with the CBE and 254.gap with the CBE.Chris Lattner2007-09-152-46/+28
| | | | | | | | | GCC optimizes away things like ptr < NULL to false. To "fix" this, have the CBE emit casts of pointers to intptr_t when doing relational pointer comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41983 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase for PR1662. GCC trees are horrible :(Chris Lattner2007-09-151-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41979 91177308-0d34-0410-b5e6-96231b3b80d8
* Add patterns for SHLD64* and SHRD64*.Dan Gohman2007-09-142-12/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41975 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a gcc warning: comparison between signed and unsigned integer expressionsChris Lattner2007-09-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41972 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove RLE from the headers, since the pass itself is gone now.Owen Anderson2007-09-142-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41971 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove RLE. It is subsumed by GVN.Owen Anderson2007-09-141-135/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41968 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the assumption that FP's are either float orDale Johannesen2007-09-1413-56/+118
| | | | | | | | | | | | | | | double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
* Add implicit def of EFLAGS on those instructions that may modify flags.Evan Cheng2007-09-145-54/+85
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41962 91177308-0d34-0410-b5e6-96231b3b80d8
* And an FoldingSetImpl::NodeID::AddInteger overload for int64_t, to avoidDan Gohman2007-09-142-0/+4
| | | | | | | ambiguity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41960 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit triples to avoid default behavior that varies by host.Dan Gohman2007-09-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41959 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove isReg, isImm, and isMBB, and change all their users to use Dan Gohman2007-09-1417-61/+57
| | | | | | | | isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
* Change "tmp." to "tmp" for temporaries created by ScalarEvolutionExpanderDan Gohman2007-09-141-1/+1
| | | | | | | for consistency with many other transforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41957 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove spurious consts. This fixes warnings with compilers thatDan Gohman2007-09-145-7/+7
| | | | | | | are strict about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for functions with byval arguments on x86Rafael Espindola2007-09-143-18/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41953 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a logic error in ValueIsOnlyUsedLocallyOrStoredToOneGlobal that caused Chris Lattner2007-09-141-4/+4
| | | | | | | | miscompilation of 188.ammp. Reject select and bitcast in ValueIsOnlyUsedLocallyOrStoredToOneGlobal because RewriteHeapSROALoadUser can't handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41950 91177308-0d34-0410-b5e6-96231b3b80d8
* silence a bogus gcc warning.Chris Lattner2007-09-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41949 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments.Evan Cheng2007-09-141-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41947 91177308-0d34-0410-b5e6-96231b3b80d8
* Change to 2.2svn.Tanya Lattner2007-09-142-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41941 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporary reverting r41817Bill Wendling2007-09-141-15/+5
| | | | | | | | | (http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053370.html). It's causing SPASS to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41938 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach GlobalLoadUsesSimpleEnoughForHeapSRA and the SROA rewriter how to handleChris Lattner2007-09-131-14/+62
| | | | | | | | a limited form of PHI nodes. This finally fixes PR1639, speeding 179.art up from 7.84s to 3.13s on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41933 91177308-0d34-0410-b5e6-96231b3b80d8
* be tolerant of PHI nodes when rewriting heap SROA code. This is a stepChris Lattner2007-09-131-26/+50
| | | | | | | along the way of PR1639 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41930 91177308-0d34-0410-b5e6-96231b3b80d8
* refactor some code, no functionality change. On the path to PR1639Chris Lattner2007-09-131-50/+56
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41929 91177308-0d34-0410-b5e6-96231b3b80d8
* Make ValueIsOnlyUsedLocallyOrStoredToOneGlobal smart enough to see throughChris Lattner2007-09-131-5/+16
| | | | | | | bitcasts and phis. This is a step to fixing PR1639. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41928 91177308-0d34-0410-b5e6-96231b3b80d8
* Make AllUsesOfLoadedValueWillTrapIfNull strong enough to see through PHIChris Lattner2007-09-131-6/+15
| | | | | | | nodes. This is the first step of the fix for PR1639. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41927 91177308-0d34-0410-b5e6-96231b3b80d8
* remove dead enum value.Chris Lattner2007-09-131-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41925 91177308-0d34-0410-b5e6-96231b3b80d8
* Make single-argument ctors explicit to avoid tricky bugs :)Chris Lattner2007-09-131-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41924 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix build problems on Cygwin (PR1652), patch by Patrick Walton.Chris Lattner2007-09-131-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923 91177308-0d34-0410-b5e6-96231b3b80d8
* Added getNumDefs().Evan Cheng2007-09-131-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41901 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fixes.Evan Cheng2007-09-131-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41900 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Evan Cheng2007-09-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41899 91177308-0d34-0410-b5e6-96231b3b80d8
* Yet another getTargetNode variant.Evan Cheng2007-09-122-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for multi-result patterns:Evan Cheng2007-09-123-57/+102
| | | | | | | | | | | | | 1. [(set GR32:$dst, (add GR32:$src1, GR32:$src2)), (modify EFLAGS)] This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS. 2. def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()> Similar to #1 except this is used for def : Pat patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41897 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed a typo that's causing a missing kill marker.Evan Cheng2007-09-122-4/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893 91177308-0d34-0410-b5e6-96231b3b80d8