summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* this case is matched now.Chris Lattner2008-10-051-9/+1
| | | | llvm-svn: 57096
* rewrite bswap matching to be more general, allowing arbitraryChris Lattner2008-10-051-77/+121
| | | | | | | | shifting and masking inside a bswap expr. This allows it to handle the cases from PR2842, which involve the intermediate 'or' expressions being shifted, not just the input value. llvm-svn: 57095
* fix a bug where the bswap matcher could match a case involvingChris Lattner2008-10-051-1/+4
| | | | | | ashr. It should only apply to lshr. llvm-svn: 57089
* wrap some long lines and expand i32 mul's to libcalls, inspired by aChris Lattner2008-10-041-4/+12
| | | | | | patch by Mikael Lepisto! llvm-svn: 57077
* CMake: Reflected changes on source file structure. New plugin supportOscar Fuentes2008-10-041-0/+2
| | | | | | for llvmc2 incomplete. llvm-svn: 57076
* Ignore loads from and stores to local memory (i.e. allocas)Duncan Sands2008-10-041-9/+26
| | | | | | | | when deciding whether to mark a function readnone/readonly. Since the pass is currently run before SROA, this may be quite helpful. Requested by Chris on IRC. llvm-svn: 57050
* Allow the construction of SCEVs with SCEVCouldNotCompute operands, byNick Lewycky2008-10-041-0/+67
| | | | | | implementing folding. Fixes PR2857. llvm-svn: 57049
* Revert r56675 - it breaks unwinding runtime everywhere.Anton Korobeynikov2008-10-041-18/+8
| | | | llvm-svn: 57048
* Add implementations for sys::Memory::setWritable and ↵Argyrios Kyrtzidis2008-10-041-0/+8
| | | | | | sys::Memory::setExecutable on Win32 platform. llvm-svn: 57047
* Fix compilation error on MSVC.Argyrios Kyrtzidis2008-10-041-1/+1
| | | | llvm-svn: 57046
* Fix fast-isel's handling of atomic instructions. They mayDan Gohman2008-10-041-1/+4
| | | | | | | | expand to multiple basic blocks, in which case fast-isel needs to informed of which block to use as it resumes inserting instructions. llvm-svn: 57040
* Fix a bug in the local allocator's liveness computation where itDan Gohman2008-10-041-3/+5
| | | | | | | | was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. llvm-svn: 57039
* Make atomic Swap work, 64-bit on x86-32.Dale Johannesen2008-10-034-11/+33
| | | | | | Make it all work in non-pic mode. llvm-svn: 57034
* Clean up some multiple-return-value code that is no longerDan Gohman2008-10-031-5/+1
| | | | | | applicable. llvm-svn: 57033
* Fix function attribute verification check.Devang Patel2008-10-031-6/+5
| | | | | | Thanks Duncan! llvm-svn: 57029
* Pass MemOperand through for 64-bit atomics on 32-bit,Dale Johannesen2008-10-034-9/+27
| | | | | | | incidentally making the case where the memop is a pointer deref work. Fix cmp-and-swap regression. llvm-svn: 57027
* Nick Lewycky's patch.Devang Patel2008-10-031-1/+1
| | | | | | While hosting instruction check PHI node. llvm-svn: 57025
* Use -1ULL instead of uint64_t(-1), at Anton's suggestion.Dan Gohman2008-10-031-2/+2
| | | | llvm-svn: 57021
* Verify function attributes.Devang Patel2008-10-031-1/+5
| | | | llvm-svn: 57020
* Fix typos pointed out by Duncan. Also untabify these files.Evan Cheng2008-10-033-15/+15
| | | | llvm-svn: 57018
* Unbreak build.Daniel Dunbar2008-10-031-18/+18
| | | | llvm-svn: 57017
* Avoid creating two TargetLowering objects for each target.Dan Gohman2008-10-0311-33/+22
| | | | | | | | | | | | Instead, just create one, and make sure everything that needs it can access it. Previously most of the SelectionDAGISel subclasses all had their own TargetLowering object, which was redundant with the TargetLowering object in the TargetMachine subclasses, except on Sparc, where SparcTargetMachine didn't have a TargetLowering object. Change Sparc to work more like the other targets here. llvm-svn: 57016
* Remove an unused field.Dan Gohman2008-10-031-6/+1
| | | | llvm-svn: 57014
* On Darwin ARM, memory needs special handling to do JIT. This patch expandsJim Grosbach2008-10-034-13/+51
| | | | | | | this handling to work properly for modifying stub functions, relocations back to entry points after JIT compilation, etc.. llvm-svn: 57013
* Indexing off by one resulted in errant encoding of source register forJim Grosbach2008-10-031-1/+1
| | | | | | reg->reg moves. llvm-svn: 57011
* NeedStub/DoesntNeedStub logic was reversed, leading to not using a stubJim Grosbach2008-10-031-4/+4
| | | | | | for global relocations that do need them (libc calls, for example). llvm-svn: 57010
* regenerateNuno Lopes2008-10-033-338/+346
| | | | llvm-svn: 57009
* fix more memleaks in ResolveTypeTo() and ParseGlobalVariable()Nuno Lopes2008-10-031-0/+4
| | | | llvm-svn: 57008
* 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
OpenPOWER on IntegriCloud