summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Make SpillIs an optional pointer. Avoid creating a bunch of temporary ↵Jakob Stoklund Olesen2011-03-109-27/+22
| | | | | | SmallVectors. llvm-svn: 127388
* Unbreak the CMake build.Francois Pichet2011-03-101-0/+1
| | | | llvm-svn: 127383
* Revert 127359; it broke lencod.Stuart Hastings2011-03-101-1/+1
| | | | llvm-svn: 127382
* Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is ↵Devang Patel2011-03-103-3/+280
| | | | | | | | | | | | treating debugging information. It generates output that lools like 8 times line number info lost by Scalar Replacement of Aggregates (SSAUp) 1 times line number info lost by Simplify well-known library calls 12 times variable info lost by Jump Threading llvm-svn: 127381
* Re-commit 127368 and 127371. They are exonerated.Evan Cheng2011-03-103-11/+24
| | | | llvm-svn: 127380
* Revert 127368 and 127371 for now.Evan Cheng2011-03-093-24/+11
| | | | llvm-svn: 127376
* Change the definition of TargetRegisterInfo::getCrossCopyRegClass to be moreEvan Cheng2011-03-093-11/+24
| | | | | | | | | | | | | flexible. If it returns a register class that's different from the input, then that's the register class used for cross-register class copies. If it returns a register class that's the same as the input, then no cross- register class copies are needed (normal copies would do). If it returns null, then it's not at all possible to copy registers of the specified register class. llvm-svn: 127368
* Fix a pasto that broke all x86_64-elf targets.Benjamin Kramer2011-03-091-1/+1
| | | | llvm-svn: 127365
* Preserve line number information while simplifying libcalls.Devang Patel2011-03-091-0/+3
| | | | llvm-svn: 127362
* X86 byval copies no longer always_inline. <rdar://problem/8706628>Stuart Hastings2011-03-091-1/+1
| | | | llvm-svn: 127359
* LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.Johnny Chen2011-03-091-0/+3
| | | | | | | | | The insufficient encoding information of the combined instruction confuses the decoder wrt UQADD16. Add extra logic to recover from that. Fixed an assert reported by Sean Callanan llvm-svn: 127354
* Make these options hidden to reduce the amount of text -help puts on theEric Christopher2011-03-091-2/+4
| | | | | | command line, they'll still be seen with -help-hidden. llvm-svn: 127353
* These llvm.dbg.* constants are not used anymore.Devang Patel2011-03-091-3/+0
| | | | llvm-svn: 127352
* Make physreg coalescing independent on the number of uses of the virtual ↵Jakob Stoklund Olesen2011-03-091-3/+1
| | | | | | | | | | | | | | | | | register. The damage done by physreg coalescing only depends on the number of instructions the extended physreg live range covers. This fixes PR9438. The heuristic is still luck-based, and physreg coalescing really should be disabled completely. We need a register allocator with better hinting support before that is possible. Convert a test to FileCheck and force spilling by inserting an extra call. The previous spilling behavior was dependent on misguided physreg coalescing decisions. llvm-svn: 127351
* Improve varags handling, with testcases. Patch by Sasa StankovicBruno Cardoso Lopes2011-03-091-29/+57
| | | | llvm-svn: 127349
* Improve pre-RA-sched register pressure tracking for duplicate operands.Andrew Trick2011-03-091-1/+5
| | | | | | This helps cases like 2008-07-19-movups-spills.ll, but doesn't have an obvious impact on benchmarks llvm-svn: 127347
* Add createELFObjectTargetWriter method to TargetAsmBackend, which enables ↵Jan Sjödin2011-03-091-4/+10
| | | | | | construction of non-standard ELFObjectWriters that can be used in MCJIT. llvm-svn: 127346
* Add constructors to MCElfStreamer and MCObjectStreamer to take an extra ↵Jan Sjödin2011-03-092-0/+13
| | | | | | MCAssembler * argument. llvm-svn: 127343
* When SCEV can determine the loop test is X < X, set ExactBECount=0.Andrew Trick2011-03-091-1/+17
| | | | | | | | When ExactBECount is a constant, use it for MaxBECount. When MaxBECount cannot be computed, replace it with ExactBECount. Fixes PR9424. llvm-svn: 127342
* whitespaceAndrew Trick2011-03-091-18/+18
| | | | llvm-svn: 127340
* Fix typo, make helper static.Benjamin Kramer2011-03-091-3/+3
| | | | llvm-svn: 127335
* Remove unused virtual dtor.Benjamin Kramer2011-03-091-1/+0
| | | | llvm-svn: 127331
* Target/X86: Tweak va_arg for Win64 not to miss taking va_start when number ↵NAKAMURA Takumi2011-03-091-3/+5
| | | | | | of fixed args > 4. llvm-svn: 127328
* Fix two cases I forgot to update when doing a mental "getSwappedPredicate".Nick Lewycky2011-03-091-2/+2
| | | | | | Thanks Duncan Sands! llvm-svn: 127323
* Fix a crasher introduced by r127317 that is seen on the bots when using anCameron Zwarich2011-03-091-18/+21
| | | | | | | alloca as both integer and floating-point vectors of the same size. Bugpoint is not cooperating with me, but I'll try to find a manual testcase tomorrow. llvm-svn: 127320
* Add another micro-optimization. Apologies for the lack of refactoring, but INick Lewycky2011-03-091-2/+28
| | | | | | | | | gave up when I realized I couldn't come up with a good name for what the refactored function would be, to describe what it does. This is PR9343 test12, which is test3 with arguments reordered. Whoops! llvm-svn: 127318
* Add support to scalar replacement for partial vector accesses of an alloca, e.g.Cameron Zwarich2011-03-091-12/+127
| | | | | | | | | | | | | | | | | a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the use of vector intrinsics, especially in NEON when programmers know the layout of the register file. This enables codegen to eliminate a lot of the subregister traffic it would otherwise generate. This commit only enables this for a small number of floating-point cases, but a lot more integer cases. I assume this is okay for all ports, but I did not do extensive testing of the quality of code involving i512 vectors and the like. If there is a use case where this generates worse code than before, let me know and we can scale it back. This fixes <rdar://problem/9036264>. llvm-svn: 127317
* Move vector type merging to a separate function in preparation for it gettingCameron Zwarich2011-03-091-12/+23
| | | | | | more complicated. llvm-svn: 127316
* Add a virtual dtor to Delegate to silence -Wnon-virtual-dtorMatt Beaumont-Gay2011-03-091-0/+1
| | | | llvm-svn: 127311
* PR9346: Prevent SimplifyDemandedBits from incorrectly introducingEli Friedman2011-03-091-0/+4
| | | | | | INT_MIN % -1. llvm-svn: 127306
* Add a LiveRangeEdit::Delegate protocol.Jakob Stoklund Olesen2011-03-094-7/+38
| | | | | | | This will we used for keeping register allocator data structures up to date while LiveRangeEdit is trimming live intervals. llvm-svn: 127300
* PR9420; an instruction before an unreachable is guaranteed not to have anyEli Friedman2011-03-091-1/+3
| | | | | | | | reachable uses, but there still might be uses in dead blocks. Use the standard solution of replacing all the uses with undef. This is a rare case because it's very sensitive to phase ordering in SimplifyCFG. llvm-svn: 127299
* * Correct encoding for VSRI.Bill Wendling2011-03-091-25/+63
| | | | | | * Add tests for VSRI and VSLI. llvm-svn: 127297
* Delete dead code.Jakob Stoklund Olesen2011-03-091-10/+0
| | | | llvm-svn: 127295
* Correct the encoding for VRSRA and VSRA instructions.Bill Wendling2011-03-091-13/+14
| | | | llvm-svn: 127294
* * Fix VRSHR and VSHR to have the correct encoding for the immediate.Bill Wendling2011-03-081-33/+65
| | | | | | * Update the NEON shift instruction test to expect what 'as' produces. llvm-svn: 127293
* Delete dead code after rematerializing.Jakob Stoklund Olesen2011-03-084-1/+107
| | | | | | | | LiveRangeEdit::eliminateDeadDefs() will eventually be used by coalescing, splitting, and spilling for dead code elimination. It can delete chains of dead instructions as long as there are no dependency loops. llvm-svn: 127287
* llvm.dbg.declare intrinsic does not use any llvm::Values. It's magic!Devang Patel2011-03-083-41/+3
| | | | llvm-svn: 127282
* Fix the build for MSVC 9 whose upper_bound() wants to compare elements in ↵Jakob Stoklund Olesen2011-03-081-0/+3
| | | | | | | | the sorted array. Patch by Olaf Krzikalla! llvm-svn: 127264
* Fix some latent bugs if the nodes are unschedulable. We'd gotten awayEric Christopher2011-03-082-1/+10
| | | | | | | | | | | | with this before since none of the register tracking or nightly tests had unschedulable nodes. This should probably be refixed with a special default Node that just returns some "don't touch me" values. Fixes PR9427 llvm-svn: 127263
* Revert "Make a comparator's argument `const'. This fixes the build forOscar Fuentes2011-03-081-1/+1
| | | | | | | | | | MSVC 9." The "fix" was meaningless. This reverts commit r127245. llvm-svn: 127260
* Darwin 'as' silently ignores the '.ident' directive.Jim Grosbach2011-03-081-0/+7
| | | | llvm-svn: 127258
* Reduce vector reallocations.Benjamin Kramer2011-03-081-4/+2
| | | | llvm-svn: 127254
* X86: Fix the (saddo/ssub x, 1) -> incl/decl selection to check the right ↵Benjamin Kramer2011-03-081-4/+4
| | | | | | | | operand for 1. Found by inspection. llvm-svn: 127247
* PTX: Add intrinsic support for ntid, ctaid, and nctaid registersJustin Holewinski2011-03-081-4/+22
| | | | llvm-svn: 127246
* Make a comparator's argument `const'. This fixes the build for MSVC 9.Oscar Fuentes2011-03-081-1/+1
| | | | llvm-svn: 127245
* Fix PR9331. Simplified version of a patch by Jakub Staszak.Duncan Sands2011-03-081-0/+4
| | | | llvm-svn: 127243
* lib/Support/regcomp.c: Fix cygwin warning.NAKAMURA Takumi2011-03-081-1/+1
| | | | llvm-svn: 127241
* Reorder comments to put them the right way around.Nick Lewycky2011-03-081-2/+2
| | | | llvm-svn: 127220
* While sinking an instruction, do not lose llvm.dbg.value intrinsic.Devang Patel2011-03-081-1/+2
| | | | llvm-svn: 127214
OpenPOWER on IntegriCloud