summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fixed Overload table bug noticed by JakobMon P Wang2009-11-071-1/+0
| | | | llvm-svn: 86332
* Refactor code. Fix a potential missing check. Teach isIdentical() about ↵Evan Cheng2009-11-075-30/+41
| | | | | | tLDRpci_pic. llvm-svn: 86330
* - Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdenticalEvan Cheng2009-11-076-37/+109
| | | | | | | | | | except it doesn't care if the definitions' virtual registers differ. This is used by machine LICM and other MI passes to perform CSE. - Teach Thumb2InstrInfo::isIdentical() to check two t2LDRpci_pic are identical. Since pc relative constantpool entries are always different, this requires it it check if the values can actually the same. llvm-svn: 86328
* Update CMake file.Ted Kremenek2009-11-071-0/+1
| | | | llvm-svn: 86325
* Add code to check at SelectionDAGISel::LowerArguments time to see if return ↵Kenneth Uildriks2009-11-074-0/+92
| | | | | | values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers llvm-svn: 86324
* Fix inverted conflict test in -early-coalesce.Jakob Stoklund Olesen2009-11-071-14/+15
| | | | | | | | | | A non-identity copy cannot be coalesced when the phi join destination register is live at the copy site. Also verify the condition that the PHI join source register is only used in the PHI join. Otherwise the coalescing is invalid. llvm-svn: 86322
* Revert following patches to fix llvmgcc bootstrap.Devang Patel2009-11-071-350/+234
| | | | | | | 86289, 86278, 86270, 86267, 86266 & 86264 Chris, please take a look. llvm-svn: 86321
* My previous patch (r84124) for setting the encoding bits 4 and 7 of DPSoRegFrmJohnny Chen2009-11-071-34/+9
| | | | | | | | | was wrong and too aggressive in the sense that DPSoRegFrm includes both constant shifts (with Inst{4} = 0) and register controlled shifts (with Inst{4} = 1 and Inst{7} = 0). The 'rr' fragment of the multiclass definitions actually means register/register with no shift, see A8-11. llvm-svn: 86319
* - new SROA mallocs should have the mallocs running-or'ed, not the malloc's ↵Victor Hernandez2009-11-071-19/+22
| | | | | | | | bitcast - fix ProcessInternalGlobal() debug output llvm-svn: 86317
* Fit in 80 columnsVictor Hernandez2009-11-071-2/+4
| | | | llvm-svn: 86316
* Avoid "ambiguous 'else'" warning from gcc.Jeffrey Yasskin2009-11-071-1/+2
| | | | llvm-svn: 86314
* Re-commit r86077 now that r86290 fixes the 179.art and 175.vpr ARM regressions.Victor Hernandez2009-11-076-139/+153
| | | | | | | | | | | | | | | | | | | | | | | Here is the original commit message: This commit updates malloc optimizations to operate on malloc calls that have constant int size arguments. Update CreateMalloc so that its callers specify the size to allocate: MallocInst-autoupgrade users use non-TargetData-computed allocation sizes. Optimization uses use TargetData to compute the allocation size. Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays. Extend getMallocType() to support malloc calls that have non-bitcast uses. Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses. The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly. Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses. The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use. Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use. Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes. llvm-svn: 86311
* 80-columnsJim Grosbach2009-11-071-1/+1
| | | | llvm-svn: 86310
* Give the JITResolver a direct pointer to its JITEmitter, and use that insteadJeffrey Yasskin2009-11-071-235/+234
| | | | | | | of going through the global TheJIT variable. This makes it easier to use features of JITEmitter that aren't in JITCodeEmitter for fixing PR5201. llvm-svn: 86305
* - Add pseudo instructions tLDRpci_pic and t2LDRpci_pic which does a pc-relativeEvan Cheng2009-11-0613-55/+253
| | | | | | | | | | | | load of a GV from constantpool and then add pc. It allows the code sequence to be rematerializable so it would be hoisted by machine licm. - Add a late pass to break these pseudo instructions into a number of real instructions. Also move the code in Thumb2 IT pass that breaks up t2MOVi32imm to this pass. This is done before post regalloc scheduling to allow the scheduler to proper schedule these instructions. It also allow them to be if-converted and shrunk by later passes. llvm-svn: 86304
* Honour subreg machine operands during asmprintingAnton Korobeynikov2009-11-061-0/+3
| | | | llvm-svn: 86303
* Print VMOV (immediate) operands as hexadecimal values. Apple's assemblerBob Wilson2009-11-063-8/+39
| | | | | | | | | will not accept negative values for these. LLVM's default operand printing sign extends values, so that valid unsigned values appear as negative immediates. Print all VMOV immediate operands as hex values to resolve this. Radar 7372576. llvm-svn: 86301
* Fix a bug where we'd call SplitBlockPredecessors with a pred in the Chris Lattner2009-11-061-2/+11
| | | | | | set only once even if it has multiple edges to BB. llvm-svn: 86299
* Fix comment typos.Bob Wilson2009-11-061-3/+3
| | | | llvm-svn: 86295
* Remove ARMPCLabelIndex from ARMISelLowering. Use ↵Evan Cheng2009-11-062-13/+38
| | | | | | ARMFunctionInfo::createConstPoolEntryUId() instead. llvm-svn: 86294
* CallInst::CreateMalloc() and CallInst::CreateFree() need to create calls ↵Victor Hernandez2009-11-061-2/+4
| | | | | | with correct calling convention llvm-svn: 86290
* Remove function left over from other jump threading cleanup.Eli Friedman2009-11-061-24/+0
| | | | llvm-svn: 86289
* Fix a problem discovered on self host.Chris Lattner2009-11-061-1/+1
| | | | llvm-svn: 86278
* remove more code subsumed by r86264Chris Lattner2009-11-061-83/+17
| | | | llvm-svn: 86270
* Tolerate invalid derived type.Devang Patel2009-11-061-0/+4
| | | | llvm-svn: 86269
* eliminate some more code subsumed by r86264Chris Lattner2009-11-061-41/+4
| | | | llvm-svn: 86267
* remove now redundant code, r86264 handles this case.Chris Lattner2009-11-061-66/+0
| | | | llvm-svn: 86266
* Extend jump threading to support much more general threadingChris Lattner2009-11-061-27/+325
| | | | | | | | | | | | | | | | | | | | predicates. This allows us to jump thread things like: _ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit119: %tmp1.i24166 = phi i8 [ 1, %bb5.i117 ], [ %tmp1.i24165, %_Z....exit ], [ %tmp1.i24165, %bb4.i114 ] %toBoolnot.i87 = icmp eq i8 %tmp1.i24166, 0 ; <i1> [#uses=1] %tmp4.i90 = icmp eq i32 %tmp2.i, 6 ; <i1> [#uses=1] %or.cond173 = and i1 %toBoolnot.i87, %tmp4.i90 ; <i1> [#uses=1] br i1 %or.cond173, label %bb4.i96, label %_ZN12... Where it is "obvious" that when coming from %bb5.i117 that the 'and' is always false. This triggers a surprisingly high number of times in the testsuite, and gets us closer to generating good code for doug's strswitch testcase. This also make a bunch of other code in jump threading redundant, I'll rip out in the next patch. This survived an enable-checking llvm-gcc bootstrap. llvm-svn: 86264
* Use WriteAsOperand to print GlobalAddress MachineOperands. ThisDan Gohman2009-11-061-1/+2
| | | | | | prints them with the leading '@'. llvm-svn: 86261
* Do not bother to emit debug info for nameless global variable.Devang Patel2009-11-062-2/+5
| | | | llvm-svn: 86259
* Pass StringRef by value.Daniel Dunbar2009-11-0626-84/+79
| | | | llvm-svn: 86251
* remove some more Context arguments.Chris Lattner2009-11-061-1/+1
| | | | llvm-svn: 86235
* remove a bunch of extraneous LLVMContext argumentsChris Lattner2009-11-0616-260/+201
| | | | | | from various APIs, addressing PR5325. llvm-svn: 86231
* Revert r86077 because it caused crashes in 179.art and 175.vpr on ARMVictor Hernandez2009-11-066-155/+138
| | | | llvm-svn: 86213
* Do not try to emit debug info entry for dead global variable.Devang Patel2009-11-061-1/+6
| | | | llvm-svn: 86212
* Factor out the printing of the leading tab into printInlineAsm.Dan Gohman2009-11-064-3/+2
| | | | llvm-svn: 86199
* Use SUBREG_TO_REG instead of INSERT_SUBREG to model x86-64'sDan Gohman2009-11-051-5/+3
| | | | | | implicit zero-extend. llvm-svn: 86196
* Teach LSR to avoid calling SplitCriticalEdge on edges with indirectbr.Dan Gohman2009-11-051-0/+1
| | | | llvm-svn: 86193
* Fix the label name generation for address-taken labels to avoid potentialDan Gohman2009-11-051-6/+10
| | | | | | problems with name collisions. llvm-svn: 86189
* Added support for renumbering existing index list elements. Removed some ↵Lang Hames2009-11-051-25/+31
| | | | | | junk from the initial numbering code in runOnMachineFunction. llvm-svn: 86184
* Avoid calling getUniqueExitBlocks from within LoopSimplify, as it dependsDan Gohman2009-11-051-1/+8
| | | | | | | on loops having dedicated exits, which LoopSimplify can no longer always guarantee. llvm-svn: 86181
* LoopDeletion depends on loops having dedicated exits.Dan Gohman2009-11-051-0/+4
| | | | llvm-svn: 86180
* The introduction of indirectbr meant the introduction ofDan Gohman2009-11-051-21/+82
| | | | | | | | | unsplittable critical edges, which means the introduction of loops which cannot be transformed to LoopSimplify form. Fix LoopSimplify to avoid transforming such loops into invalid code. llvm-svn: 86176
* Update various Loop optimization passes to cope with the possibility thatDan Gohman2009-11-057-9/+29
| | | | | | LoopSimplify form may not be available. llvm-svn: 86175
* Fix bug in aggressive antidep breaking; liveness was not updated correctly ↵David Goodwin2009-11-051-10/+7
| | | | | | for regions that do not have antidep candidates. llvm-svn: 86172
* Teach LoopUnroll how to bail if LoopSimplify can't give it what it needs.Dan Gohman2009-11-051-1/+12
| | | | llvm-svn: 86164
* Call getAnalysis<LoopInfo> the normal way, instead of asking passed-inDan Gohman2009-11-051-2/+2
| | | | | | LoopPassManager for it. llvm-svn: 86163
* Fix IVUsers to avoid assuming that the loop has a unique backedge.Dan Gohman2009-11-051-0/+2
| | | | llvm-svn: 86161
* Delete an unused member variable.Dan Gohman2009-11-051-2/+0
| | | | llvm-svn: 86160
* Factor out the predicate code for loopsimplify form exit blocks intoDan Gohman2009-11-051-6/+8
| | | | | | a separate helper function. llvm-svn: 86159
OpenPOWER on IntegriCloud