summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert 129383. It causes some targets to hit a scheduler assert.Andrew Trick2011-04-122-184/+157
| | | | llvm-svn: 129385
* PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency.Andrew Trick2011-04-122-157/+184
| | | | | | | | | | | | UnitsSharePred was a source of randomness in the scheduler: node priority depended on the queue data structure. I rewrote the recent VRegCycle heuristics to completely replace the old heuristic without any randomness. To make these heuristic adjustments to node latency work, I also needed to do something a little more reasonable with TokenFactor. I gave it zero latency to its consumers and always schedule it as low as possible. llvm-svn: 129383
* Create new intervals for isolated blocks during region splitting.Jakob Stoklund Olesen2011-04-123-37/+46
| | | | | | | | | This merges the behavior of splitSingleBlocks into splitAroundRegion, so the RS_Region and RS_Block register stages can be coalesced. That means the leftover intervals after region splitting go directly to spilling instead of a second pass of per-block splitting. llvm-svn: 129379
* Remove LastOffset from the asm parser.Rafael Espindola2011-04-123-21/+20
| | | | llvm-svn: 129378
* The Thumb2 Ld, St, and Preload instructions with the i12 forms should have ↵Johnny Chen2011-04-122-0/+5
| | | | | | | | | | its Inst{23} be specified as '1' (add = TRUE). Also add a utility function for Thumb2. llvm-svn: 129377
* Add SplitKit API to query and select the current interval being worked on.Jakob Stoklund Olesen2011-04-122-2/+17
| | | | | | This makes it possible to target multiple registers in one pass. llvm-svn: 129374
* Fix a bug in RegAllocBase::addMBBLiveIns() where a basic block could ↵Jakob Stoklund Olesen2011-04-121-1/+1
| | | | | | accidentally be skipped. llvm-svn: 129373
* Remove dead typedef.Devang Patel2011-04-121-2/+0
| | | | llvm-svn: 129368
* Refactor CompileUnit into a separate header.Devang Patel2011-04-122-98/+124
| | | | llvm-svn: 129367
* Print out a debug message when the reglist fails the sanity check for Thumb ↵Johnny Chen2011-04-122-0/+29
| | | | | | Ld/St Multiple. llvm-svn: 129365
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-123-77/+116
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-123-0/+32
| | | | llvm-svn: 129361
* Split a store of a VMOVDRR into two integer stores to avoid mixing NEON and ARMCameron Zwarich2011-04-121-2/+22
| | | | | | | stores of arguments in the same cache line. This fixes the second half of <rdar://problem/8674845>. llvm-svn: 129345
* lib/Transforms/Instrumentation/CMakeLists.txt: Add LineProfiling.cpp to fix ↵NAKAMURA Takumi2011-04-121-0/+1
| | | | | | up r129340. llvm-svn: 129343
* Add support for line profiling. Very work-in-progress.Nick Lewycky2011-04-122-0/+218
| | | | | | | | | | Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter. Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file. The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on. llvm-svn: 129340
* Consider ConstantAggregateZero as well as ConstantArray/Struct.Nick Lewycky2011-04-121-5/+7
| | | | llvm-svn: 129338
* Fix typo.Eric Christopher2011-04-121-1/+1
| | | | llvm-svn: 129334
* Make IRBuilder support StringRef for building strings.Nick Lewycky2011-04-121-1/+1
| | | | | | Also document that the global variables produced are mergable. llvm-svn: 129330
* Tidy up a bit now that we're using the MemoryManager interface.Jim Grosbach2011-04-121-7/+1
| | | | llvm-svn: 129328
* Match case for invalid constant error messages and add a newEric Christopher2011-04-121-5/+5
| | | | | | test for invalid hexadecimals. llvm-svn: 129326
* A8.6.16 BJohnny Chen2011-04-121-0/+5
| | | | | | | | | Encoding T1 (tBcc) if cond == '1110' then UNDEFINED; rdar://problem/9268681 llvm-svn: 129325
* Fix reassociate to use a worklist instead of recursing when newDan Gohman2011-04-121-59/+67
| | | | | | | | | reassociation opportunities are exposed. This fixes a bug where the nested reassociation expects to be the IR to be consistent, but it isn't, because the outer reassociation has disconnected some of the operands. rdar://9167457 llvm-svn: 129324
* To avoid printing out multiple error messages for cases like:Eric Christopher2011-04-121-0/+3
| | | | | | | | | | .long 80+08 go ahead and assume that if we've got an Error token that we handled it already. Otherwise if it's a token we can't handle then go ahead and return the default error. llvm-svn: 129322
* Reuse live interval union between functions. This saves a bit of compile timeJakob Stoklund Olesen2011-04-112-4/+11
| | | | | | when compiling many small functions. llvm-svn: 129321
* Thumb disassembler was erroneously rejecting "blx sp" instruction.Johnny Chen2011-04-112-2/+14
| | | | | | rdar://problem/9267838 llvm-svn: 129320
* comment cleanup, use moveBefore instead of removeFromParent+insertBefore.Chris Lattner2011-04-111-9/+5
| | | | llvm-svn: 129319
* remove the StructRetPromotion pass. It is unused, not maintained andChris Lattner2011-04-113-359/+0
| | | | | | | has some bugs. If this is interesting functionality, it should be reimplemented in the argpromotion pass. llvm-svn: 129314
* Fix an error in the MBlaze delay slot filler.Wesley Peck2011-04-111-1/+1
| | | | llvm-svn: 129313
* Add scheduling information for the MBlaze backend.Wesley Peck2011-04-1116-228/+710
| | | | llvm-svn: 129311
* Lex, and then fail on invalid constants.Eric Christopher2011-04-111-1/+1
| | | | | | | | Testcase forthcoming. rdar://8490596 llvm-svn: 129309
* Just because a GlobalVariable's initializer is [N x { i32, void ()* }] doesn'tNick Lewycky2011-04-113-9/+20
| | | | | | | | | | | | mean that it has to be ConstantArray of ConstantStruct. We might have ConstantAggregateZero, at either level, so don't crash on that. Also, semi-deprecate the sentinal value. The linker isn't aware of sentinals so we end up with the two lists appended, each with their "sentinals" on them. Different parts of LLVM treated sentinals differently, so make them all just ignore the single entry and continue on with the rest of the list. llvm-svn: 129307
* Implement cfi_rel_offsetRafael Espindola2011-04-111-1/+33
| | | | llvm-svn: 129306
* Speed up eviction by stopping collectInterferingVRegs as soon as the spillJakob Stoklund Olesen2011-04-113-14/+23
| | | | | | weight limit has been exceeded. llvm-svn: 129305
* Don't crash on invalid instructions when disassembling MBlaze code.Wesley Peck2011-04-113-36/+115
| | | | | | This fixes http://llvm.org/bugs/show_bug.cgi?id=9653 llvm-svn: 129303
* The default of the dispatch switch statement was to branch to a BB that executedBill Wendling2011-04-111-7/+8
| | | | | | | | | | | | | | | | | | | | the 'unwind' instruction. However, later on that instruction was converted into a jump to the basic block it was located in, causing an infinite loop when we get there. It turns out, we get there if the _Unwind_Resume_or_Rethrow call returns (which it's not supposed to do). It returns if it cannot find a place to unwind to. Thus we would get what appears to be a "hang" when in reality it's just that the EH couldn't be propagated further along. Instead of infinitely looping (or calling `unwind', which none of our back-ends support (it's lowered into nothing...)), call the @llvm.trap() intrinsic instead. This may not conform to specific rules of a particular language, but it's rather better than infinitely looping. <rdar://problem/9175843&9233582> llvm-svn: 129302
* Fix the bug where the immediate shift amount for Thumb logical shift ↵Johnny Chen2011-04-111-6/+17
| | | | | | | | instructions are incorrectly disassembled. rdar://problem/9266265 llvm-svn: 129298
* Look pass copies when determining whether hoisting would end up inserting ↵Evan Cheng2011-04-111-8/+17
| | | | | | more copies. rdar://9266679 llvm-svn: 129297
* implement .cfi_adjust_cfa_offset.Rafael Espindola2011-04-111-1/+28
| | | | llvm-svn: 129296
* Fix another using-CPSR-twice bug in my ADCS/SBCS cleanups, and make proper ↵Owen Anderson2011-04-111-2/+5
| | | | | | use of the Commutable bit. llvm-svn: 129294
* Use a faster algorithm for computing MBB live-in registers after register ↵Jakob Stoklund Olesen2011-04-111-18/+20
| | | | | | | | allocation. LiveIntervals::findLiveInMBBs has to do a full binary search for each segment. llvm-svn: 129292
* Trivial comment fix.Johnny Chen2011-04-112-2/+2
| | | | llvm-svn: 129288
* Fix a couple of places where changes are made but not tracked.Evan Cheng2011-04-112-3/+10
| | | | llvm-svn: 129287
* Check invalid register encodings for LdFrm/StFrm ARM instructions and flag ↵Johnny Chen2011-04-111-0/+68
| | | | | | | | them as invalid instructions. llvm-svn: 129286
* Adding support for printing operands symbolically to llvm's public 'C'Kevin Enderby2011-04-116-8/+142
| | | | | | | | | | | | | disassembler API. Hooked this up to the ARM target so such tools as Darwin's otool(1) can now print things like branch targets for example this: blx _puts instead of this: blx #-36 And even print the expression encoded in the Mach-O relocation entried for things like this: movt r0, :upper16:((_foo-_bar)+1234) llvm-svn: 129284
* Don't add live ranges for sub-registers when clobbering a physical register.Jakob Stoklund Olesen2011-04-112-15/+7
| | | | | | | | | Both coalescing and register allocation already check aliases for interference, so these extra segments are only slowing us down. This speeds up both linear scan and the greedy register allocator. llvm-svn: 129283
* Speed up LiveIntervalUnion::unify by handling end insertion specially.Jakob Stoklund Olesen2011-04-111-1/+9
| | | | | | This particularly helps with the initial transfer of fixed intervals. llvm-svn: 129277
* Time the initial seeding of live registersJakob Stoklund Olesen2011-04-111-0/+1
| | | | llvm-svn: 129276
* Don't shrink live ranges after dead code elimination unless it is going to help.Jakob Stoklund Olesen2011-04-111-4/+10
| | | | | | In particular, don't repeatedly recompute the PIC base live range after rematerialization. llvm-svn: 129275
* Fix or remove code which seemed to think that the operand of a ConstantJay Foad2011-04-111-1/+1
| | | | | | was always a User. llvm-svn: 129272
* Don't include Operator.h from InstrTypes.h.Jay Foad2011-04-1117-0/+17
| | | | llvm-svn: 129271
OpenPOWER on IntegriCloud