aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* lastRegisterUse() should ignore identity copies. Those will be erased.Evan Cheng2008-03-251-7/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48759 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unneeded test.Evan Cheng2008-03-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48755 91177308-0d34-0410-b5e6-96231b3b80d8
* Add \t after .set. Fix by Jay Freeman.Evan Cheng2008-03-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48753 91177308-0d34-0410-b5e6-96231b3b80d8
* If the coalescer commuted a def MI to allow coalescing, it can changed a ↵Evan Cheng2008-03-241-1/+2
| | | | | | previously coalesced copy into an non-identity copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an assertion to catch register of illegal class.Evan Cheng2008-03-241-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48751 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the bit size of the operand instead of the hard-coded 32 to generate theBill Wendling2008-03-241-2/+5
| | | | | | | mask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48750 91177308-0d34-0410-b5e6-96231b3b80d8
* - SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. ↵Evan Cheng2008-03-242-8/+27
| | | | | | Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48746 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r48676. I had plans for using it, but now it's just dead code.Owen Anderson2008-03-242-70/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48743 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove #include<iostream>, which I was using for debugging.Owen Anderson2008-03-241-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48739 91177308-0d34-0410-b5e6-96231b3b80d8
* Add incoming value from header only if phi node has any use inside the loop.Devang Patel2008-03-241-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48738 91177308-0d34-0410-b5e6-96231b3b80d8
* Shrink the size of AllocationInst by using its SubclassDataDan Gohman2008-03-241-4/+10
| | | | | | | | field to store the alignment value instead of haing a separate field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48727 91177308-0d34-0410-b5e6-96231b3b80d8
* APIntify SelectionDAG's EXTRACT_ELEMENT code.Dan Gohman2008-03-241-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48726 91177308-0d34-0410-b5e6-96231b3b80d8
* Increasing the inline limit from (overly conservative) 200 to 300. Given ↵Evan Cheng2008-03-243-9/+38
| | | | | | | | | each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it). Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48725 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily disabling memset forming optimization. Add an option.Evan Cheng2008-03-241-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48720 91177308-0d34-0410-b5e6-96231b3b80d8
* Be sure to remove intervals after we've joined them. Also, remove some ↵Owen Anderson2008-03-241-46/+18
| | | | | | | | | | duplicated code. With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways to go before it's ready for prime time, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48719 91177308-0d34-0410-b5e6-96231b3b80d8
* Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if ↵Evan Cheng2008-03-241-96/+129
| | | | | | at least one of the (zext icmp) can be transformed to eliminate an icmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48715 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove duplicated entries.Evan Cheng2008-03-231-35/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48714 91177308-0d34-0410-b5e6-96231b3b80d8
* Objective Caml bindings for basic block, function, global, and arg iterators.Gordon Henriksen2008-03-231-4/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48711 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor typo fixes. Also add another FIXME.Anton Korobeynikov2008-03-231-5/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48710 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve calling convention during function cloningAnton Korobeynikov2008-03-231-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48708 91177308-0d34-0410-b5e6-96231b3b80d8
* Add license headerAnton Korobeynikov2008-03-231-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48707 91177308-0d34-0410-b5e6-96231b3b80d8
* Add Win64 compilation callback. This allows easy examples to be JITed on Win64!Anton Korobeynikov2008-03-232-5/+58
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48706 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide a JIT selector on win64Anton Korobeynikov2008-03-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48704 91177308-0d34-0410-b5e6-96231b3b80d8
* Hack out the PIC mode on Win64 targets. This needs to be investigated later.Anton Korobeynikov2008-03-231-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48703 91177308-0d34-0410-b5e6-96231b3b80d8
* Code cleanup. Provide generic way of selecting JIT pointer bitwidth regardlessAnton Korobeynikov2008-03-231-22/+30
| | | | | | | of compiler used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48702 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove old-standing obsolete code.Anton Korobeynikov2008-03-231-9/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48701 91177308-0d34-0410-b5e6-96231b3b80d8
* Honour built-in defines on win64 targets for automatically subtarget recognize.Anton Korobeynikov2008-03-221-2/+3
| | | | | | | Force stack alignment to 16 bytes on win targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48695 91177308-0d34-0410-b5e6-96231b3b80d8
* Recognize "windows" in target triple, not only "win32"Anton Korobeynikov2008-03-221-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48694 91177308-0d34-0410-b5e6-96231b3b80d8
* Add information about callee-saved registers on Win64Anton Korobeynikov2008-03-222-6/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48692 91177308-0d34-0410-b5e6-96231b3b80d8
* Add convenient helper for win64 check. Simplify things slightly.Anton Korobeynikov2008-03-223-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48691 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for Win64 calling conventions. Still in early state.Anton Korobeynikov2008-03-222-5/+54
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48690 91177308-0d34-0410-b5e6-96231b3b80d8
* Register EH frames emitted in JIT when using gcc unwinding runtimeAnton Korobeynikov2008-03-221-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48688 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix merge errorAnton Korobeynikov2008-03-221-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48687 91177308-0d34-0410-b5e6-96231b3b80d8
* Add testcase for prev. commit. Minor fixesAnton Korobeynikov2008-03-221-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48686 91177308-0d34-0410-b5e6-96231b3b80d8
* Aliasing chains cleanups: update langref, add check into verifierAnton Korobeynikov2008-03-221-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48685 91177308-0d34-0410-b5e6-96231b3b80d8
* Support chained aliases for LLVM IR printing. This fixes PR2145Anton Korobeynikov2008-03-221-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48684 91177308-0d34-0410-b5e6-96231b3b80d8
* Another comments fixingAnton Korobeynikov2008-03-222-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48683 91177308-0d34-0410-b5e6-96231b3b80d8
* Slightly increase default set size. It's cheap and won't hurt.Anton Korobeynikov2008-03-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48682 91177308-0d34-0410-b5e6-96231b3b80d8
* implement an initial hack at a straight-line store -> memset optimization.Chris Lattner2008-03-221-6/+59
| | | | | | | | | | This fires dozens of times across spec and multisource, but I don't know if it actually speeds stuff up. Hopefully the testers will show something nice :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48680 91177308-0d34-0410-b5e6-96231b3b80d8
* implement the logic for memset insertion and store deletion.Chris Lattner2008-03-221-11/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48679 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a comment, and fix a bug where AllocateRW recurred to AllocateRWX ↵Owen Anderson2008-03-221-1/+1
| | | | | | instead of itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48677 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an AllocateRW to match AllocateRWX.Owen Anderson2008-03-222-0/+70
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48676 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach DAG combiner to commute commutable binary nodes in order to achieve ↵Evan Cheng2008-03-222-0/+31
| | | | | | sdisel CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673 91177308-0d34-0410-b5e6-96231b3b80d8
* This is a partially implemented and currently disabled start of a storeChris Lattner2008-03-221-0/+159
| | | | | | | merging optimization. Nothing to see here, hopefully more later :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48670 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't include <map> in Pass.h, which doesn't need it. This requiresDan Gohman2008-03-2112-0/+12
| | | | | | | adding <map> to many files that actually do need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid calling array_endof in a static initializer, as it incursDan Gohman2008-03-211-2/+2
| | | | | | | dynamic initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48666 91177308-0d34-0410-b5e6-96231b3b80d8
* Specialize FORCE_DEFINING_FILE_TO_BE_LINKED using a GCC trickDan Gohman2008-03-211-1/+1
| | | | | | | | | to avoid using constructor calls for static objects. This reduces the number of objects requiring static constructors in a typical LLVM build by around 20%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48665 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix -view-sunit-dags to support cross-rc-copy nodes.Dan Gohman2008-03-211-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48664 91177308-0d34-0410-b5e6-96231b3b80d8
* the size of a smallvector shouldn't be part of the interface to these methods.Chris Lattner2008-03-211-20/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48662 91177308-0d34-0410-b5e6-96231b3b80d8
* make gvn marginally faster by reallocating the lastSeenLoad map forChris Lattner2008-03-211-3/+4
| | | | | | | each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48660 91177308-0d34-0410-b5e6-96231b3b80d8