summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* regenerate with bison 2.3Nuno Lopes2008-10-033-316/+318
| | | | llvm-svn: 57007
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-0367-484/+482
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* fix memleak in FunctionHeaderHNuno Lopes2008-10-031-0/+1
| | | | llvm-svn: 57005
* The result of getSetCCResultType (eg: i32) may be largerDuncan Sands2008-10-031-4/+8
| | | | | | | | | than the type an i1 is promoted to (eg: i8). Account for this. Noticed by Tilmann Scheller on CellSPU; he will hopefully take care of fixing this in LegalizeDAG and adding a testcase! llvm-svn: 56997
* Teach internalize to preserve the callgraph.Duncan Sands2008-10-032-0/+20
| | | | | | Why? Because it was there! llvm-svn: 56996
* Acquire the lock only when necessary. More precisely, do not acquireNicolas Geoffray2008-10-031-10/+22
| | | | | | the lock when calling a method which may materialize the llvm::Function. llvm-svn: 56995
* SplitBlock should only attempt to update LoopInfo if it is actually being used.Owen Anderson2008-10-031-4/+3
| | | | llvm-svn: 56994
* Implement fast-isel support for zero-extending from i1.Dan Gohman2008-10-031-1/+12
| | | | | | | It turns out that this is a fairly common operation, and it's easy enough to handle. llvm-svn: 56990
* Fix X86FastISel to handle dynamic allocas that have avoidedDan Gohman2008-10-031-0/+10
| | | | | | | getting inserted into the ValueMap. This avoids infinite recursion in some rare cases. llvm-svn: 56989
* Optimize conditional branches in X86FastISel. This replacesDan Gohman2008-10-022-26/+160
| | | | | | | | | | | sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 llvm-svn: 56969
* Add a new MachineBasicBlock utility function, isLayoutSuccessor, thatDan Gohman2008-10-021-0/+5
| | | | | | | can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. llvm-svn: 56968
* fix build gcc 4.3Andrew Lenharth2008-10-021-0/+1
| | | | llvm-svn: 56965
* Use a multimap rather than a map for holding the list of copies to insert, ↵Owen Anderson2008-10-021-12/+19
| | | | | | | | | | so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. llvm-svn: 56964
* Handle some 64-bit atomics on x86-32, some of the time.Dale Johannesen2008-10-025-19/+345
| | | | llvm-svn: 56963
* Remove redundant check.Devang Patel2008-10-021-9/+0
| | | | llvm-svn: 56960
* A Partitioned Boolean Quadratic Programming (PBQP) based register allocator.Evan Cheng2008-10-023-0/+2208
| | | | | | Contributed by Lang Hames. llvm-svn: 56959
* CMake: Added Host.cpp to lib/System/CMakeLists.txt.Oscar Fuentes2008-10-021-0/+1
| | | | llvm-svn: 56957
* Fix a think-o in isSafeToMove. This fixes it from thinking thatDan Gohman2008-10-021-1/+1
| | | | | | volatile memory references are safe to move. llvm-svn: 56948
* Work around an interaction between fast-isel and regalloc=local. TheDan Gohman2008-10-021-1/+5
| | | | | | | | | | | | | | | | | local register allocator's physreg liveness doesn't recognize subregs, so it doesn't know that defs of %ecx that are immediately followed by uses of %cl aren't dead. This comes up due to the way fast-isel emits shift instructions. This is a temporary workaround. Arguably, local regalloc should handle subreg references correctly. On the other hand, perhaps fast-isel should use INSERT_SUBREG instead of just assigning to the most convenient super-register of %cl when lowering shifts. This fixes MultiSource/Benchmarks/MallocBench/espresso, MultiSource/Applications/hexxagon, and others, under -fast. llvm-svn: 56947
* "The original bug was a complaint that _mm_srli_si128 mis-compiled when passedBill Wendling2008-10-021-0/+4
| | | | | | | | | | a constant vector ("{0x123, 0x456}" syntax). The fix is to simplify the _mm_srli_si128 macro, and move the "* 8" from the macro into the compiler back-end. I can't change the existing __builtins because so many people are using them :-(." Patch by Stuart Hastings! llvm-svn: 56944
* Add llvm::sys::{osName,osVersion} for retrieving operating system nameDaniel Dunbar2008-10-023-0/+101
| | | | | | | & version as strings. - Win32 code is untested. llvm-svn: 56942
* Attributes noinline alwaysinline are incompatibleDevang Patel2008-10-011-0/+17
| | | | llvm-svn: 56939
* Remove OptimizeForSize global. Use function attribute optsize.Devang Patel2008-10-017-11/+9
| | | | llvm-svn: 56937
* Enable FastISel by default (on x86 and x86-64) with the -fast option.Dan Gohman2008-10-011-4/+16
| | | | llvm-svn: 56930
* add a new form of Type::dump that takes a module for type names,Chris Lattner2008-10-011-0/+8
| | | | | | patch provided by Tomas Lindquist Olsen! llvm-svn: 56929
* Make some implicit conversions explicit, to avoid compiler warnings.Dan Gohman2008-10-012-4/+4
| | | | llvm-svn: 56927
* Split x86's ADJCALLSTACK instructions into 32-bit and 64-bit forms.Dan Gohman2008-10-014-14/+45
| | | | | | | | | | | This allows the 64-bit forms to use+def RSP instead of ESP. This doesn't fix any real bugs today, but it is more precise and it makes the debug dumps on x86-64 look more consistent. Also, add some comments describing the CALL instructions' physreg operand uses and defs. llvm-svn: 56925
* Fix typo s/ther/there/Jim Grosbach2008-10-011-1/+1
| | | | llvm-svn: 56924
* Factorize code: remove variants of "strip offDuncan Sands2008-10-016-135/+47
| | | | | | | | | | | pointer bitcasts and GEP's", and centralize the logic in Value::getUnderlyingObject. The difference with stripPointerCasts is that stripPointerCasts only strips GEPs if all indices are zero, while getUnderlyingObject strips GEPs no matter what the indices are. llvm-svn: 56922
* Fold trivial two-operand tokenfactors where the operands are equalDan Gohman2008-10-011-0/+1
| | | | | | immediately. llvm-svn: 56921
* Don't prepend a space character for constants in Value::print.Dan Gohman2008-10-011-1/+1
| | | | llvm-svn: 56920
* Fix typos in comments.Dan Gohman2008-10-011-2/+2
| | | | llvm-svn: 56919
* revert the addition of Preverves(CallGraph), per Duncan's commentsNuno Lopes2008-10-011-2/+0
| | | | llvm-svn: 56917
* Mark CALL instructions as having a Use of ESP/RSP.Dan Gohman2008-10-012-3/+5
| | | | llvm-svn: 56911
* Call ScalarEvolution's deleteValueFromRecords before deleting anDan Gohman2008-10-011-3/+3
| | | | | | instruction, not after. This fixes some uses of free'd memory. llvm-svn: 56908
* Implement the -fno-builtin option in the front-end, not in the back-end.Bill Wendling2008-10-013-28/+19
| | | | llvm-svn: 56900
* Mark merged-in VNInfo's as being PHIKilled.Owen Anderson2008-09-301-0/+5
| | | | llvm-svn: 56893
* Fix a simple error in renumbering kill markaers, that took an inordinant ↵Owen Anderson2008-09-301-1/+1
| | | | | | amount of time to track down. llvm-svn: 56889
* Just don't transform this memset into "bzero" if no-builtin is specified.Bill Wendling2008-09-303-19/+21
| | | | llvm-svn: 56888
* add preserversCFG() + preservers(CallGraph)Nuno Lopes2008-09-301-0/+6
| | | | llvm-svn: 56887
* - Initialize "--no-builtin" to "false".Bill Wendling2008-09-301-1/+1
| | | | | | - Testcase for r56885. llvm-svn: 56886
* Add the new `-no-builtin' flag. This flag is meant to mimic the GCCBill Wendling2008-09-305-29/+37
| | | | | | | | | `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. llvm-svn: 56885
* Move the primary fast-isel top-level comments to FastISel.cpp, whereDan Gohman2008-09-301-0/+28
| | | | | | they'll be a little more visible. Also, update and reword them a bit. llvm-svn: 56877
* add AU.setPreservesCFG() since this pass only adds and removes function ↵Nuno Lopes2008-09-301-0/+5
| | | | | | attributes llvm-svn: 56868
* Optimize SelectionDAG's AssignTopologicalOrder even further.Dan Gohman2008-09-303-32/+67
| | | | | | | | | | | | | | | | | | | Completely eliminate the TopOrder std::vector. Instead, sort the AllNodes list in place. This also eliminates the need to call AllNodes.size(), a linear-time operation, before performing the sort. Also, eliminate the Sources temporary std::vector, since it essentially duplicates the sorted result as it is being built. This also changes the direction of the topological sort from bottom-up to top-down. The AllNodes list starts out in roughly top-down order, so this reduces the amount of reordering needed. Top-down is also more convenient for Legalize, and ISel needed only minor adjustments. llvm-svn: 56867
* Add runStaticConstructorsDestructors which runs ctors / dtors of a single ↵Evan Cheng2008-09-301-32/+40
| | | | | | module. Patch by David Chisnall. llvm-svn: 56849
* Re-apply 56835 along with header file changes.Evan Cheng2008-09-303-8/+20
| | | | llvm-svn: 56848
* Revert commit 56835 since it breaks the build.Duncan Sands2008-09-303-20/+8
| | | | | | | | | | "If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it". llvm-svn: 56837
* If a re-materializable instruction has a register operand, the spiller will ↵Evan Cheng2008-09-303-8/+20
| | | | | | change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it. llvm-svn: 56835
* Fix misoptimization of: xor i1 (icmp eq (X, C1), icmp s[lg]t (X, C2))Nick Lewycky2008-09-301-2/+3
| | | | llvm-svn: 56834
OpenPOWER on IntegriCloud