summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Dust off tail recursion elimination. Fix a fixme by applying CaptureTrackingNick Lewycky2009-11-072-21/+32
| | | | | | and add a .ll to demo the new capability. llvm-svn: 86349
* llvmc: Add a '-time' option.Mikhail Glushenkov2009-11-074-6/+50
| | | | llvm-svn: 86348
* Trailing whitespace.Mikhail Glushenkov2009-11-071-7/+7
| | | | llvm-svn: 86347
* 80-col violation.Mikhail Glushenkov2009-11-071-2/+2
| | | | llvm-svn: 86346
* merge cmp1 into cmp0 and filecheckize.Chris Lattner2009-11-072-9/+19
| | | | llvm-svn: 86345
* Update some globals to use ManagedStatic.Lang Hames2009-11-072-21/+62
| | | | llvm-svn: 86342
* Fix memoizing of CvtRndSatSDNodeMon P Wang2009-11-071-1/+2
| | | | llvm-svn: 86340
* Fixed Overload table bug noticed by JakobMon P Wang2009-11-071-1/+0
| | | | llvm-svn: 86332
* Missed this.Evan Cheng2009-11-071-1/+12
| | | | llvm-svn: 86331
* Refactor code. Fix a potential missing check. Teach isIdentical() about ↵Evan Cheng2009-11-077-30/+83
| | | | | | tLDRpci_pic. llvm-svn: 86330
* - Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdenticalEvan Cheng2009-11-077-41/+115
| | | | | | | | | | 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-076-0/+111
| | | | | | 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-072-17/+19
| | | | | | | | | | 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-073-403/+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-0719-202/+252
| | | | | | | | | | | | | | | | | | | | | | | 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-0615-59/+258
| | | | | | | | | | | | 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-062-0/+67
| | | | llvm-svn: 86303
* Print VMOV (immediate) operands as hexadecimal values. Apple's assemblerBob Wilson2009-11-064-8/+59
| | | | | | | | | 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 a broken test.Bob Wilson2009-11-061-1/+1
| | | | llvm-svn: 86298
* Fix comment typos.Bob Wilson2009-11-061-3/+3
| | | | llvm-svn: 86295
* Remove ARMPCLabelIndex from ARMISelLowering. Use ↵Evan Cheng2009-11-063-17/+42
| | | | | | 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 typoGabor Greif2009-11-061-0/+0
| | | | llvm-svn: 86281
* Fix a problem discovered on self host.Chris Lattner2009-11-062-1/+23
| | | | llvm-svn: 86278
* remove more code subsumed by r86264Chris Lattner2009-11-061-83/+17
| | | | llvm-svn: 86270
* Tolerate invalid derived type.Devang Patel2009-11-062-0/+17
| | | | 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-062-27/+356
| | | | | | | | | | | | | | | | | | | | 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-063-2/+13
| | | | llvm-svn: 86259
* Pass StringRef by value.Daniel Dunbar2009-11-0651-200/+196
| | | | llvm-svn: 86251
* clang++ points out that this is pointless.Chris Lattner2009-11-061-1/+1
| | | | llvm-svn: 86239
* remove some more Context arguments.Chris Lattner2009-11-063-5/+3
| | | | llvm-svn: 86235
* remove a bunch of extraneous LLVMContext argumentsChris Lattner2009-11-0620-289/+220
| | | | | | from various APIs, addressing PR5325. llvm-svn: 86231
* NewNighlytTest: Fix timestamp format to actually make sense (it was missing ↵Daniel Dunbar2009-11-061-1/+2
| | | | | | the hour). llvm-svn: 86229
* NewNightlyTest: Add -noclean option, which doesn't run 'make clean' before ↵Daniel Dunbar2009-11-061-6/+8
| | | | | | | | building LLVM (for testing). Also, switch to always running 'make clean' in the test-suite directories. llvm-svn: 86228
* NewNightlyTest: Unbreak passing the build directory via a positional argument.Daniel Dunbar2009-11-061-7/+7
| | | | llvm-svn: 86227
* NewNightlyTest: Add -llvmgccdir as alternative to environment variable.Daniel Dunbar2009-11-061-8/+15
| | | | llvm-svn: 86226
* Revert r86077 because it caused crashes in 179.art and 175.vpr on ARMVictor Hernandez2009-11-0619-244/+191
| | | | llvm-svn: 86213
* Do not try to emit debug info entry for dead global variable.Devang Patel2009-11-062-1/+23
| | | | llvm-svn: 86212
OpenPOWER on IntegriCloud