summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* performance: cache the dereferenced use_iteratorGabor Greif2010-04-141-3/+5
| | | | llvm-svn: 101250
* Add a comment.Dan Gohman2010-04-141-0/+2
| | | | llvm-svn: 101248
* Enable RTTI again. While this works fine for LLVM, it creates an ABINick Lewycky2010-04-141-0/+1
| | | | | | incompatibility with some clients covered by the buildbots, such as llvm-gcc. llvm-svn: 101237
* Turn off RTTI for VMCore. Yay!Nick Lewycky2010-04-141-1/+0
| | | | llvm-svn: 101233
* I don't know how, but I managed to goof the revert. Remove function that shouldNick Lewycky2010-04-141-37/+0
| | | | | | have been removed in r101231. llvm-svn: 101232
* Revert r101213.Nick Lewycky2010-04-141-29/+14
| | | | llvm-svn: 101231
* Fix 80 column ruler.Nick Lewycky2010-04-141-1/+1
| | | | llvm-svn: 101229
* implement mc asmparser support for '.', which gets theChris Lattner2010-04-142-0/+17
| | | | | | | | | | | | | | | | | | | current PC. rdar://7834775 We now produce an identical .o file compared to the cctools assembler for something like this: _f0: L0: jmp L1 .long . - L0 L1: jmp A .long . - L1 .zerofill __DATA,_bss,A,0 llvm-svn: 101227
* Remove tab.Nick Lewycky2010-04-141-1/+1
| | | | llvm-svn: 101223
* While DAE can't modify the function signature of an externally visible function,Nick Lewycky2010-04-141-14/+66
| | | | | | | | | it can check whether the visible direct callers are passing in parameters to dead arguments and replace those with undef. This reinstates r94322 with bugs fixed. llvm-svn: 101213
* Generalize this code to handle Instructions in addition to ConstantExprs.Dan Gohman2010-04-141-3/+3
| | | | llvm-svn: 101210
* Reorder the methods of this class to be a little more organized.Dan Gohman2010-04-141-22/+22
| | | | llvm-svn: 101206
* Fixed another assert exposed by fuzzing. Now, when an encoding error occursJohnny Chen2010-04-141-4/+14
| | | | | | | involing getBFCInvMask() where lsb <= msb does not hold true, the disassembler just returns false, instead of assert, to indicate disassembly error. llvm-svn: 101205
* Clear MachineInstr->MCSymbol maps at the end of a function.Devang Patel2010-04-141-0/+2
| | | | llvm-svn: 101202
* Fixed an assert() exposed by fuzzing. Now, instead of assert when an invalidJohnny Chen2010-04-142-10/+15
| | | | | | | instruction encoding is encountered, we just return a NULL ARMBasicMCBuilder instance and the client just returns false to indicate disassembly error. llvm-svn: 101201
* Unbreak CMake build by improving the EnhancedDisassembly makefile aDouglas Gregor2010-04-132-0/+2
| | | | | | | bit (we're not trying to build a shared library yet) and generating the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary. llvm-svn: 101188
* Fast path implicit_def check.Evan Cheng2010-04-131-5/+5
| | | | llvm-svn: 101183
* Handle a v2f64 formal parameter that is split between registers and memoryBob Wilson2010-04-131-7/+13
| | | | | | such that the entire second half is in memory. Radar 7855014. llvm-svn: 101181
* Fixed a nasty layering violation in the edis sourceSean Callanan2010-04-134-2/+30
| | | | | | | | | | | | | | | code. It used to #include the enhanced disassembly information for the targets it supported straight out of lib/Target/{X86,ARM,...} but now it uses a new interface provided by MCDisassembler, and (so far) implemented by X86 and ARM. Also removed hacky #define-controlled initialization of targets in edis. If clients only want edis to initialize a limited set of targets, they can set --enable-targets on the configure command line. llvm-svn: 101179
* Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits,Johnny Chen2010-04-131-3/+3
| | | | | | instead of 7, because we are only looking for even rotate amount. llvm-svn: 101172
* Do not include types without any definition in pubtypes list.Devang Patel2010-04-131-2/+4
| | | | llvm-svn: 101171
* Avoid variable shadowing.Evan Cheng2010-04-131-2/+2
| | | | llvm-svn: 101170
* Expand postra machine licm's capability a little more. If an instruction's ↵Evan Cheng2010-04-131-8/+24
| | | | | | register operands are all loop invariants, then it's safe to hoist it. llvm-svn: 101167
* Teach MachineSinking to handle easy critical edges.Jakob Stoklund Olesen2010-04-131-2/+17
| | | | | | | | | | | | | | Sometimes it is desirable to sink instructions along a critical edge: x = ... if (a && b) ... else use(x); The 'a && b' condition creates a critical edge to the else block, but we still want to sink the computation of x into the block. The else block is dominated by the parent block, so we are not pushing instructions into new code paths. llvm-svn: 101165
* Re-apply 101075 and fix it properly. Just reuse the debug info of the branch ↵Evan Cheng2010-04-131-1/+44
| | | | | | instruction being optimized. There is no need to --I which can deref off start of the BB. llvm-svn: 101162
* Temporarily revert r101075, it's causing invalid iterator assertionsEric Christopher2010-04-131-46/+1
| | | | | | in a nightly tester. llvm-svn: 101158
* Teach postra machine licm to hoist more obvious invariants, e.g. ↵Evan Cheng2010-04-131-17/+38
| | | | | | instructions with no source operands. llvm-svn: 101154
* Add a few comments.Dan Gohman2010-04-131-0/+5
| | | | llvm-svn: 101148
* Eliminate MachineBasicBlock::const_livein_iterator and makeDan Gohman2010-04-137-10/+11
| | | | | | | | MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. llvm-svn: 101147
* Rename MachineFrameInfo variables to MFI, for consistency withDan Gohman2010-04-131-41/+41
| | | | | | the rest of CodeGen. llvm-svn: 101146
* Move MachineRegisterInfo's isLiveIn and isLiveOut out of line.Dan Gohman2010-04-131-0/+14
| | | | llvm-svn: 101145
* Use MachineBasicBlock::isLiveIn.Dan Gohman2010-04-131-8/+1
| | | | llvm-svn: 101144
* Delete an unused member variable.Dan Gohman2010-04-131-1/+0
| | | | llvm-svn: 101143
* Teach ScalarEvolution to simplify smax and umax when it can proveDan Gohman2010-04-131-2/+14
| | | | | | that one operand is always greater than another. llvm-svn: 101142
* Minor code micro-optimizations.Dan Gohman2010-04-131-7/+7
| | | | llvm-svn: 101141
* Actually... return after the check for invalid input.Eric Christopher2010-04-131-0/+1
| | | | llvm-svn: 101139
* BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)Benjamin Kramer2010-04-131-2/+2
| | | | llvm-svn: 101138
* Let BumpPtrAllocator lazily allocate the first slab.Benjamin Kramer2010-04-131-3/+6
| | | | | | | We have some code in llvm and clang where a BumpPtrAllocator is declared in a class but never used in the common case. Stop wasting memory there. llvm-svn: 101130
* Remove SCCVN from the CMake build system.Owen Anderson2010-04-131-1/+0
| | | | llvm-svn: 101125
* SCCVN, we hardly knew ye!Owen Anderson2010-04-131-716/+0
| | | | llvm-svn: 101117
* Fix PR6826: GraphWriter delete the generated file before "dotty" load it,Chris Lattner2010-04-131-1/+2
| | | | | | patch by 'ether'. llvm-svn: 101116
* Replace r101053 with a fix for getSOImmValRotate() so that it will correctlyBob Wilson2010-04-132-53/+7
| | | | | | | recognize all the valid rotated immediates. This fixes the disassembler issue and will also help codegen for some unusual constant values. llvm-svn: 101114
* Teach IndVarSimplify how to eliminate remainder operators where theDan Gohman2010-04-131-0/+71
| | | | | | | | | | | | numerator is an induction variable. For example, with code like this: for (i=0;i<n;++i) x[i%n] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the remainder. llvm-svn: 101113
* VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms ofDaniel Dunbar2010-04-131-0/+8
| | | | | | | Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type without occasionally needed to call IntegerType::get. llvm-svn: 101111
* add llvm codegen support for -ffunction-sections and -fdata-sections,Chris Lattner2010-04-132-3/+60
| | | | | | patch by Sylvere Teissier! llvm-svn: 101106
* Micro-optimize a few hot spots.Dan Gohman2010-04-121-10/+11
| | | | llvm-svn: 101086
* Use .set expression for x86 pic jump table reference to reduce assembly ↵Evan Cheng2010-04-121-0/+9
| | | | | | relocation. rdar://7738756 llvm-svn: 101085
* Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, asDan Gohman2010-04-121-0/+14
| | | | | | | they're used a lot by getNodeForGEP, which can be called a lot. This speeds up -iv-users by around 15% on several testcases. llvm-svn: 101083
* Micro-optimization:Bill Wendling2010-04-121-1/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have this situation: jCC L1 jmp L2 L1: ... L2: ... We can get a small performance boost by emitting this instead: jnCC L2 L1: ... L2: ... This testcase shows an example of this: float func(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } llvm-svn: 101075
* Simplify this code.Dan Gohman2010-04-121-14/+14
| | | | llvm-svn: 101074
OpenPOWER on IntegriCloud